R Markdown:动态生成文档利器

徐小东

2023-01-03

Markdown

一种轻量级标记语言,由约翰·格鲁伯创建。1 https://en.wikipedia.org/wiki/Markdown允许人们使用易读易写的纯文本格式编写文档,然后转换成 HTML。

R

主要用于统计分析、绘图以及数据挖掘的编程语言。2 https://en.wikipedia.org/wiki/R_(programming_language)

R Markdown

两大特点:

  1. 能直接嵌入代码,并予以执行,如:R、Python、Shell、C、Go、SQL 等等,可实现计算机大师高德纳所提出的文学式编程(literate programming)。
  2. 支持输出许多文档格式,包括:HTML、PDF、Word、ePub、简历、网站、幻灯片、电子答卷、书籍等等。

安装

方法一:

  1. 安装 R:$ sudo apt install r-base
  2. 启动 R:$ R
  3. 安装 rmarkdown:install.packages("rmarkdown")

方法二:

  1. 拉取镜像:$ docker pull toyland/bookdown
  2. 运行容器:$ docker run --rm -v $PWD:/work toyland/bookdown

样例:制作幻灯片

---
title: "R Markdown:动态生成文档利器"
author: "徐小东"
date: "2023-01-03"
header-includes:
  - \usepackage{ctex}
output:
  beamer_presentation:
    theme: default
    latex_engine: xelatex
---

## Markdown

一种轻量级标记语言,由约翰·格鲁伯创建。

---(snip)---

样例:剖析

渲染文档

$ Rscript -e 'rmarkdown::render("rmd.Rmd", "all")'

输出为 rmd.pdf

代码块

```{bash}
ls *.Rmd
```
ls *.Rmd
## as.Rmd
## as010.Rmd
## as020.Rmd
## as030.Rmd
## as040.Rmd
## as050.Rmd
## as060.Rmd
## as070.Rmd
## as080.Rmd
## as090.Rmd
## as100.Rmd
## as110.Rmd
## as120.Rmd
## as130.Rmd
## as140.Rmd
## as150.Rmd
## as160.Rmd
## as220.Rmd
## as230.Rmd
## as240.Rmd
## as250.Rmd
## as260.Rmd
## as270.Rmd
## as280.Rmd
## as290.Rmd
## as300.Rmd
## as310.Rmd

表格

knitr::kable(iris[1:5, ], caption = 'A caption')

A caption

Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa

图形

#plot(cars, pch = 18)

参考