R Markdown 入门教程

您所在的位置:网站首页 pandoc使用方法 R Markdown 入门教程

R Markdown 入门教程

#R Markdown 入门教程 | 来源: 网络整理| 查看: 265

R 语言 R Markdown 入门教程 庄亮亮

关键词:R Markdown

审稿:黄湘云、任焱

第一章:R Markdown 简介

R Markdown 是 R 语言环境中提供的 markdown 编辑工具,运用 R Markdown 撰写文章,既可以像一般的 markdown 编辑器一样编辑文本,也可以在 R Markdown 中插入代码块,并将代码运行结果输出在 markdown 里。R Markdown 格式,简称为 Rmd 格式, 相应的源文件扩展名为 .Rmd。输出格式可以是 HTML、docx、pdf、beamer 等。

介绍参考:李东风老师的《R 语言教程》。

对于专注于用 R 语言写报告的数据分析师来说,R Markdown 既提高了数据分析工作的便捷性,也提高了数据分析报告的复用性。 markdown 的教程以及对应的编辑器介绍可见:R沟通|markdown编辑器—Typora。

1.1官网视频介绍

先通过官方视频来看看 R Markdown 的介绍。

注:该视频来自官网,一般不一定打得开,所以小编为大家着想就下载下来了,以便大家更好地学习,可见这篇推送。

视频已经非常清楚的介绍了 R Markdown 如何使用,内部构造、不同的输出类型,以及其他拓展(发布,与 github 相连)等。我们先对此进行简单了解即可,之后几期我会详细介绍。当然,官网也有一套 R Markdown 的入门教程,欢迎大家前去学习,官网截图如下:

其他参考资料可见这一期推文:R分享|R Markdown参考资料分享和自制视频教程预告。关于 R Markdown 可参考专著(Xie, Allaire, and Grolemund 2019)和(Xie, Dervieux, and Riederer 2020)。 RStudio 网站提供了一个 R Markdown 使用小抄的下载链接:( rmarkdown-2.0.pdf )[rmarkdown-2.0.pdf]。 Pandoc 的文档见Pandoc 网站,knitr 的详细文档参见网站 knitr 文档。

第二章:R Markdown流程演示 2.1. 安装

假设你已经安装了 R(R Core Team 2020)和 RStudio IDE。

不需要 RStudio,但建议使用 RStudio,因为它可使普通用户更轻松地使用 R Markdown。如果未安装 RStudio IDE,则必须安装 Pandoc, 否则不需要单独安装 Pandoc,因为 RStudio 已将其捆绑在一起。

接下来, RStudio 中安装 rmarkdown 软件包,可以通过下面任意一种方式:

#Install from CRAN install.packages('rmarkdown') # Or if you want to test the development version, #install from GitHub if(!requireNamespace("devtools")) install.packages('devtools') devtools::install_github('rstudio/rmarkdown')

如果要生成 PDF 输出,则需要安装 LaTeX。对于从未安装过 LaTeX 的 R Markdown 用户,建议安装 TinyTeX:

install.packages('tinytex') tinytex::install_tinytex() # install TinyTeX

TinyTeX 是一种轻便,可移植,跨平台,易于维护的 LaTeX 发行版。 R 配套软件包 tinytex 可以帮助你在将 LaTeX 或 R Markdown 文档编译为 PDF 时自动安装缺少的 LaTeX 软件包,并确保将 LaTeX 文档编译正确的次数以解决所有交叉引用。

注: 如果 TinyTex 通过上面代码无法正常安装,可以参考张敬信老师的知乎文章:搭建 Latex 环境:TinyTex+RStudio 如果编译 .rmd 格式时出现缺失某些 Latex 包,可以参考这节内容。

2.2. 新建R Markdown项目 点击 RStudio 左上角的新建项目,选择 R Markdown 文件格式,即可建立一个 rmarkdown 编辑文件 。

在弹出的选项框里,可以申明 rmarkdown 的 Title、 Author 以及默认的输出文件格式,一般可以选择 HTML、PDF、Word 格式,具体见下图。

在新建的 markdown 文件里,主要包含三块内容:1. YAML、2. markdown 文本、3.代码块。

1)YAML: R Markdown 的头部文件(上图1位置), YAML 定义了 rmarkdwon 的性质,比如 title、author、date、 指定 output 文件类型等。

2)markdown文本: rmarkdown 里的主要内容(上图3位置),由编辑人员按照 markdown 语法自行编写文本内容,

3)代码块: rmarkdown 的一个主要功能是可以执行文件内的代码块(上图2位置),并将代码执行结果展示在 markdown 里。这对撰写数据分析报告带来了极大的便利。 Rmd 文件中除了 R 代码段以外, 还可以插入 Rcpp、Python、Julia、SQL 等许多编程语言的代码段, 常用编程语言还可以与R代码段进行信息交换。

这三个部分会在以后做详细介绍。

2.3. R Markdown的导出

rmarkdown的导出方法有两种,一种是依靠 RStudio 手动导出,另一种是基于命令行的导出方式。

手动导出

手动导出方法很简单,在完成 markdown 编辑后,手动点击上图红圈内 knit 按钮,选择导出格式类型即可, RStudio 支持导出 PDF、html、word 三种类型。

命令行导出

命令行导出主要依靠 rmarkdown::render 实现, render 函数主要包含如下几个参数:

input: 指定需要导出的rmarkdwon文件地址 output_format: 指定需要导出的文件类型,同样支持 pdf、word、html 等多种文件格式。若未指定 output_format 格式,则输出 rmarkdown 文件中 output 指定的格式类型。 rmarkdown::render("test.Rmd")

2.4. RStudio界面介绍

若界面打开了rmd格式的文件时, RStudio 的界面发生了一些变化(多了一些按钮),如下图所示。

这里我们对界面做一些介绍,视频介绍在这。

注:演示的 RStudio 版本为1.4.1,老版本的界面可能有所不同。

第三章:图、表和代码输出 3.1代码输出 1.行内代码 `r sin(pi/2)`

有趣的案例:

1)自动更新日期

date: "`r Sys.Date()`" date: "`r format(Sys.time(), '%d %B, %Y')`" date: "Last compiled on `r format(Sys.time(), '%d %B, %Y')`"

具体细节可参考:https://bookdown.org/yihui/rmarkdown-cookbook/update-date.html

2)文本结合代码

这里一共有`r sum(x)`个人。 2. 代码块 ​```{r} set.seed(1) x sum(1:5) [1] 15

results 选项

用选项 results= 选择文本型结果的类型。 取值有:

- `markup`, 这是缺省选项, 会把文本型结果变成HTML的原样文本格式。 - `hide`, 运行了代码后不显示运行结果。 - `hold`, 一个代码块所有的代码都显示完, 才显示所有的结果。 - `asis`, 文本型输出直接进入到 HTML 文件中, 这需要 R 代码直接生成HTML标签, knitr 包的 `kable()` 函数可以把数据框转换为 HTML 代码的表格。

例如, results='hold' 的示例:

​```{r collapse=TRUE, results='hold'} sin(pi/2) cos(pi/2) ​```

结果为:

sin(pi/2) cos(pi/2) ## [1] 1 ## [1] 6.123032e-17

错误信息选项

warning=FALSE 使得代码段的警告信息不进入编译结果, 而是在控制台( console )中显示。 有一些扩展包的载入警告可以用这种办法屏蔽。 error=FALSE 可以使得错误信息不进入编译结果, 而是出错停止并将错误信息在控制台中显示。 message=FALSE 可以使得 message 级别的信息不进入编译结果, 而是在控制台中显示。

还有关于图片的设置,这个我们放到下面来说

当然你也可以通过 RStudio 界面进行部分参数的设置(更加便捷):

具体演示可见b站视频。

全局设置

若 markdown 内的代码块存在一样的参数设置,则可以提前设计好全局的代码块参数。全局代码块通过 knitr::opts_chunk$set 函数进行设置,一般设置在 YAML 文件下方。

​```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ​``` 3.2.图片输出 1. 插入 R 代码生成的图形 ​```{r, fig.height = 8,fig.with = 6} plot(1:10) ​```

fig.show:设置了图片输出方式

fig.show=‘asis’:表示 plot 在产生他们的代码后面 fig.show=‘hold’:所有代码产生的图片都放在一个完整的代码块之后 fig.show=‘animate’:表示将所有生成的图片合成一个动画图片 fig.show=‘hide’:表示产生所有图片,但是并不展示 ​```{r, fig.show='animate'} for (i in 1:2) { pie(c(i %% 2, 6), col = c('red', 'yellow'), labels = NA) } ​```

fig.width: 设置图片输出的宽度

fig.height: 设置图片输出的高度

fig.align: 设置图片位置排版格式,默认为 “left”, 可以为 “right” 或者 “center”。

fig.cap: 设置图片的标题

fig.subcap: 设置图片的副标题

out.width 和 out.height 选项指定在输出中实际显示的宽和高,如果使用如 “90%” 这样的百分数单位则可以自动适应输出的大小。

2. 插入外部图形文件

如果一个图不是由一个 R 代码块生成的,你可以用三种方式包含它:

方法一

使用 Markdown 语法 ![caption](path/to/image), 你可以使用 width 和 height 属性来设置图像的大小,例如:

![图的标题](xxx.png){width=50%}

注意:图片文件放的位置(如果和 rmd 同一目录,则可以直接 xxx.png; 如果在其他位置记得加上相对路径)。

方式二

在 source editor 情况下,直接外部拉入图形即可,会自动保存在相对文件夹的 images 中,或者点击图形按钮导入。

方式三

在代码块中使用 knitr 函数 knitr::include_graphics()。 图片尺寸更改与插入R代码生成的图形的情况相同。

``` ​```{r, echo=FALSE , out.width="50%"} knitr::include_graphics("xxx.png") ​``` ``` 3.3.表格输出 1. 外部表格输入 markdown格式

Typora格式

2. 内部代码输出的表格

例子:计算线性回归后, summary() 函数的输出中有 coefficients 一项,是一个矩阵, 如果直接文本显示比较难看:

x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3