华东师范大学校徽
华东师范大学社会发展学院标志
School of Social Development
多源数据分析与实践 · Week 2
1 / 29

第一章 重点解析

主讲人:刘贇喆 副教授 | 华东师范大学 社会发展学院
从 RStudio 到 R Markdown,建立可复现的分析工作流
目录
2 / 29
1.0 科研范式的演进
-- / --

SECTION01 / 05

1.0科研范式的演进

Evolution of Scientific Paradigms

1.0 研究范式的演进
-- / --

研究范式的演进

From Observation to AI-Driven Science

新范式扩展可研究的问题,此前的范式仍在继续使用。

古代文明文字、历法与度量
1600s近代科学革命
1950s电子计算机
2000s互联网与大数据
2025AI4Science
仍在形成

Adapted from Miolane (2025), The fifth era of science: Artificial scientific intelligence, PLOS Biology. 时间边界与案例为教学示意。

2.0 RStudio 入门
-- / --

SECTION02 / 05

2.0RStudio 入门

Getting Started with RStudio

2.0 RStudio 入门
-- / --

RStudio 的四个窗格

The RStudio Interface

Source

源代码编辑器

编写、保存并反复运行代码。脚本把分析步骤固定下来,是可复现结果的基础。

Console

控制台

在 > 提示符后输入代码并回车即执行,结果或报错随即显示;适合快速试算,但不能替代脚本。

RStudio 四窗格界面:左上源代码编辑器(黄色)、右上环境(蓝色)、左下控制台(红色)、右下多功能区(绿色)
Environment

环境面板

列出当前全局环境中的对象,例如数据框、向量与函数,用来检查对象是否已生成及其结构。

Files · Plots · Help

多功能区

以标签页组织文件、图形、扩展包与帮助,绘图结果默认显示在 Plots 标签页。

打开脚本后,RStudio 显示四个窗格

2.0 RStudio 入门
-- / --

输入、运行与输出

Input · Run · Output

代码写在 Source(新建的 R Script),按 Ctrl/⌘+Enter 运行,结果去 Console / Plots / Environment 查看。

1

输入 · Source

在新建的 R Script 里逐行输入代码

2

运行 · 快捷键

一次选中多行,运行全部

WindowsCtrl+Enter
macOS+Enter

也可点击编辑器上的 Run 按钮,效果相同

3

输出 · 结果去向

运行后,结果出现在以下窗格

Source你写的代码 左上
3.0 R 项目管理
-- / --

SECTION03 / 05

3.0R 项目管理

Project-oriented Workflows in R

3.0 R 项目管理
-- / --

为什么需要项目结构?

Why Project Structure Matters

CASE · 某一典型毕业论文项目

名称修改日期大小
问卷量表.xlsx2024-06-102.3 MB
第七次人口普查上海闵行区.csv2024-06-3018.4 MB
数据.sav2024-08-155.1 MB
分析最终2.R2025-11-033.1 KB
test.R2025-10-201.2 KB
田野照片1.jpg2024-09-084.8 MB
人口密度直方图.png2025-12-010.8 MB
未命名.png2026-01-221.2 MB
第一章改.docx2025-08-190.5 MB
最终论文(二改).docx2026-04-020.6 MB
最终论文(绝对不改).docx2026-05-180.6 MB
最终论文绝对绝对不改.docx2026-05-180.7 MB
新建文件夹——
数据(旧)——
人口普查-副本.csv2024-06-3018.4 MB
  1. 01

    哪一份才是原始数据?

  2. 02

    最终结果究竟由哪份数据、哪个脚本生成?

  3. 03

    半年以后重新打开,你自己或别人知道该从哪里继续吗?

TIME过一段时间
自己也要重新“考古”
DEVICE换一台电脑
路径与位置依赖容易失效
PEOPLE交给别人
很难复现,更难接手
3.0 R 项目管理
-- / --

从文件堆积到项目结构

From Files to a Project

还是前面那份毕业论文,整理之后是这样:

文件浏览器
问卷量表.xlsx
第七次人口普查上海闵行区.csv
数据.sav
clean_data.rds
01_import.R
02_clean.R
03_analysis.R
04_visualize.R
report.Rmd
生活满意度分布.png
街道人口特征.jpg
summary.csv
thesis.docx

好的项目结构,让“人”一眼看出:数据从哪来、做了什么、结果在哪。

3.0 R 项目管理
-- / --

养成好习惯

Good Project Habits

左右切换,末页速览

3.0 R 项目管理
-- / --

创建 R Project

Create an R Project

让 RStudio 创建项目根目录与 .Rproj 入口,从一开始就把分析放进明确的项目边界。

New Project WizardRStudio 操作示意
STEP 01

打开 New Project Wizard

可从 File 菜单或右上角 Project 菜单进入。

第 1 步:打开项目向导点击左侧步骤继续
3.0 R 项目管理
-- / --

从 .Rproj 开始

Open the Project First

项目创建后,今后从 chapter_1.Rproj 进入 RStudio;项目上下文与上次打开的文件通常会一并恢复。

D:/R_course/chapter_1项目根文件夹
名称类型
双击文件,观察 RStudio 获得的上下文点击上方三项切换
RStudiochapter_1▾
推荐的打开方式

已进入 chapter_1 项目

RStudio 载入项目上下文,并把工作目录定位到项目根文件夹。

Projectchapter_1 Working directoryD:/R_course/chapter_1

上次打开的脚本与文档通常会随项目恢复;如未恢复,再从项目内打开。

已通过 chapter_1.Rproj 打开项目Project context ready
项目启动顺序1 打开 chapter_1.Rproj→2 确认右上角显示 chapter_1→3 继续上次工作;必要时再打开文件
4.0 R 包与 tidyverse
-- / --

SECTION04 / 05

4.0R 包与 tidyverse

R Packages and the tidyverse

4.0 R 包与 tidyverse
-- / --

R 包:像 App 一样扩展 R

Extending R with Packages

Base R 像一部刚出厂的 iPhone,RStudio 是这节课使用的操作界面;需要专业功能时,再从“应用商店”安装相应的 R 包。

9:41● ● ▰
RStudio 标识 RStudio
R 标识
ConsoleScript · Data · Plot
BASE R · CORE SYSTEM
Base R基础计算、统计、绘图与文件操作

R Package Store

不同的包,为不同的分析任务提供专业功能

CRANGitHubBioconductor
FEATURED PACKAGES数千个扩展功能可供选择
dplyr数据变换
GET
ggplot2数据可视化
GET
readr读取数据
GET
tidyr整理数据
GET
broom整理模型结果
GET
tidymodels建模工作流
GET
01
安装包INSTALL · 通常只需一次
CONSOLE
install.packages("dplyr")

联网从 CRAN 下载,并保存到当前电脑的 R 包库

02
加载包LOAD · 每次新的 R 会话
SCRIPT / RMD
library(dplyr)

把已经安装的包接入当前会话,随后即可使用其中的函数

4.0 R 包与 tidyverse
-- / --
4.0 R 包与 tidyverse
-- / --

tidyverse 与管道符

The tidyverse and the Pipe Operator

tidyverse为数据科学协同设计的一组 R 包
一次加载九个核心包library(tidyverse)
5.0 R Markdown
-- / --

SECTION05 / 05

5.0R Markdown

Reproducible Documents with R Markdown

5.0 R Markdown
-- / --

为什么使用 R Markdown?

From Fragmented Writing to Reproducible Research

01
传统写作工具多个文件,依靠手工同步
analysis.RR SCRIPT
model <- read_csv("survey.csv") %>%
  select(hours, score) %>%
  lm(score ~ hours, data = .)
代码与报告分开保存
figure_01.pngEXPORTED
ŷ = 51.6 + 4.2x 学习时长 × 考试成绩
研究报告report.docx

分析结果

模型拟合度R² = 0.42

复制数字 粘贴图表

数据或模型一旦更新,就需要重新导出、替换并逐项核对。

02
R Markdown 工作流一份源文件,重新生成全部成果
01
单一来源

文字、代码与输出共用一个版本

02
自动更新

数据变化后重新 Knit 即可同步结果

03
可复现

重新运行即可核对分析步骤与结果

04
交互呈现

网页可承载动态图表、地图与表格

05
Open Science

源文件便于共享、审查与继续扩展

唯一源文件chapter_1.Rmd
.Rmd
说明文字研究问题与结果解释
R 代码数据处理与分析步骤
图表与结果由代码运行后生成
一次 Knit重新生成多种成果
HTML PDF DOCX PPTX
5.0 R Markdown
-- / --

Knit:从源文件到成果

From .Rmd Source to Finished Document

example.Rmd SOURCE

编织

example.html
HTML
等待 Knit

源文件尚未生成输出

LOADING HTML 正在载入 Knit 成品
尚未生成浏览器 / Viewer
5.0 R Markdown
-- / --

R Markdown 的基本结构

Core Structure of an R Markdown Document

example.Rmd R MARKDOWN
1--- 2title: "分析报告" 3author: "课程示例" 4output: 5 html_document: 6 toc: true 7 number_sections: true 8---
10```{r setup, include=FALSE} 11library(tidyverse) 12knitr::opts_chunk$set(echo = TRUE) 13```
15# 一级标题 16这是一段普通正文,用于解释分析背景。 17可以使用 **加粗**、*斜体* 与 [链接文字](https://example.org)。
19---
21## 二级标题 22下面先报告数据规模,再查看变量摘要。
24当前数据共有 `r nrow(cars)` 条观测。
26```{r summary, cache=TRUE, message=FALSE} 27summary(cars) 28```
30### 三级标题 31- 列表项可以整理关键发现 32- 也可以补充方法与数据来源
R Markdown UTF-8
结构说明 严格来说,Rmd 通常由 YAML、Markdown 正文与嵌入式 R 代码三层构成;课堂中将 R 代码拆为“行内代码”和“代码块”两类。运行结果由 Knit 生成,不是源文件中的独立区块。
5.0 R Markdown
-- / --

Markdown 语法:输入与呈现

Markdown Source · Rendered Output

01标题层级# 后必须保留空格
MARKDOWN 输入
# 一级标题
## 二级标题
### 三级标题
KNIT 后 · 点击结果定位输入
02强调与行内代码成对符号不要漏写
MARKDOWN 输入
**核心结论**
*补充说明*
`mean(x)`
KNIT 后 · 点击结果定位输入
03无序与有序列表列表前后保留空行
MARKDOWN 输入
- 数据
- 方法
 
1. 清理
2. 建模
KNIT 后 · 点击结果定位输入
04链接与图片图片路径必须可访问
MARKDOWN 输入
[课程主页](https://example.org)
 
![研究区域图](figure.png)
KNIT 后 · 点击结果定位输入
05引用、段落与分割线分割线上下保留空行
MARKDOWN 输入
> 结果需要结合语境解释。
 
这是一个新的段落。
 
---
 
KNIT 后 · 点击结果定位输入

06简单表格第二行决定列对齐
MARKDOWN 输入
| 变量 | 均值 |
|:-----|-----:|
| 年龄 | 32.4 |
| 收入 |  8.6 |
KNIT 后 · 点击结果定位输入
5.0 R Markdown
-- / --

代码块:创建、命名与参数

Create and Configure an R Code Chunk

example.Rmd
插入代码块 WindowsCtrl+Alt+I macOS⌘+⌥+I
当前行为

运行代码 · 显示代码与结果 · 保留消息和警告

多源数据分析与实践 · Week 2
30 / 30

Thanks

第二周:第一章 重点解析

主讲人:刘贇喆 副教授 | 华东师范大学 社会发展学院
滚轮 / 方向键 / 空格切换