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_documentpdf_documentword_document
  • toc: true 为 HTML 输出添加浮动目录

Markdown 语法快速上手

效果 语法
粗体 **粗体**
斜体 *斜体*
# 一级标题 # 一级标题
## 二级标题 ## 二级标题
链接 [R 官网](https://r-project.org)
图片 ![](sales.png)
无序列表 - 条目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$yearparams$region 取值:

sales_data <- filter(full_data, Year == params$year, Region == params$region)

渲染时传递参数

rmarkdown::render("report.Rmd", params = list(year = 2023, region = "华南"))