R 语言 markdown 报告生成
FreeGuideOnline
最新
2026-07-14
r install.packages("rmarkdown")
## 你的第一个 R Markdown 文件
### 创建新文件
1. 打开 RStudio,点击菜单 `File -> New File -> R Markdown...`
2. 在弹出的对话框中输入标题(如“销售分析报告”)和作者名,默认输出格式选 HTML
3. 点击 OK,系统会生成一个扩展名为 `.Rmd` 的示例文件
### 文件结构概览
一个 `.Rmd` 文件由三部分组成:
- **YAML 头部**:文件开头的 `---` 之间的元数据
- **Markdown 文本**:用简单的标记语法书写叙述文字
- **代码块**:以 ` ```{r} ` 开头、` ``` ` 结尾的 R 代码区
### 渲染报告
点击 RStudio 工具栏上的 **Knit** 按钮,或运行:
```r
rmarkdown::render("your_file.Rmd")
即可看到生成的 HTML 报告。
YAML 头部详解
YAML 头部控制整个文档的元信息和输出设置,一个典型头部如下:
---
title: "月度销售分析"
author: "张三"
date: "2024-12-20"
output:
html_document:
toc: true
toc_float: true
---
常用参数:
title/author/date:标题、作者、日期(设为"r Sys.Date()"可自动使用当前日期)output:指定输出格式,可同时指定多种,如html_document、pdf_document、word_documenttoc: true为 HTML 输出添加浮动目录
Markdown 语法快速上手
| 效果 | 语法 |
|---|---|
| 粗体 | **粗体** |
| 斜体 | *斜体* |
| # 一级标题 | # 一级标题 |
| ## 二级标题 | ## 二级标题 |
| 链接 | [R 官网](https://r-project.org) |
 |
|
| 无序列表 | - 条目1 |
| 有序列表 | 1. 第一步 |
在 R Markdown 中直接使用 Markdown 书写文字部分,简单而强大。
R 代码块
插入代码块
使用快捷键 Ctrl + Alt + I(Windows/Linux)或 Cmd + Option + I(Mac)快速插入代码块。
代码块基本格式:
```{r 块名称, 选项}
# 你的 R 代码
summary(cars)
```
常用代码块选项
echo = TRUE:是否在报告中显示代码本身(默认 TRUE,设为 FALSE 则隐藏代码)eval = TRUE:是否执行代码(默认 TRUE)include = TRUE:是否在输出中包含代码及其结果(设为 FALSE 会运行代码但不显示任何内容)warning = FALSE:隐藏警告信息message = FALSE:隐藏消息信息fig.width = 6, fig.height = 4:设置图形尺寸
示例:
```{r pressure-plot, echo=FALSE, warning=FALSE, fig.width=8}
library(ggplot2)
ggplot(pressure, aes(x=temperature, y=pressure)) +
geom_line(col="blue") +
labs(title="温度-压力曲线")
```
内联 R 代码
可以在段落中直接嵌入 R 的值,格式为 r code 。
例如:
当月总销售额为
r sum(sales$amount)万元。
输出格式定制
HTML 文档
YAML 中定义 html_document 后,可使用以下高级选项:
output:
html_document:
theme: flatly # 内置主题:default, cerulean, journal, flatly 等
highlight: tango # 代码高亮样式
df_print: paged # 将数据框显示为可分页的表格
PDF 文档
需要先安装 LaTeX 发行版,推荐使用 tinytex:
install.packages("tinytex")
tinytex::install_tinytex()
然后在 YAML 中设置 pdf_document:
output:
pdf_document:
toc: true
latex_engine: xelatex # 支持中文
如果 PDF 中文乱码,需在 YAML 头部添加:
header-includes:
- \usepackage{ctex}
Word 文档
只需设置 word_document 即可生成可编辑的 .docx 文件:
output: word_document
还可通过参考自定义样式模板生成格式统一的 Word 报告。
同时产出多种格式
output:
html_document: default
pdf_document: default
word_document: default
点击 Knit 时会同时生成三种格式的文件。
动态表格与图表
表格
- 基础表格直接用代码输出数据框
- 推荐使用
knitr::kable()生成美观表格:
knitr::kable(head(mtcars), caption = "汽车性能数据预览")
- 配合
kableExtra包可生成更复杂的 HTML/PDF 表格
图表
所有 R 绘制的图形(基础 plot、ggplot2、plotly 等)会自动嵌入报告。结合代码块选项精确控制尺寸和是否显示代码。
参数化报告
当需要批量生成内容不同但结构相同的报告时,参数化报告是最佳实践。
定义参数
在 YAML 头部声明参数:
params:
year: 2024
region: "华东"
使用参数
在代码块中通过 params$year 和 params$region 取值:
sales_data <- filter(full_data, Year == params$year, Region == params$region)
渲染时传递参数
rmarkdown::render("report.Rmd", params = list(year = 2023, region = "华南"))