Rmarkdown入门汇总
R Markdown介绍
RMarkdown为我们的数据分析创建一个清晰美观的报告,它能够包含代码,图,表,说明,查看的人能够很清楚地理解。
RMarkdown利用Markdown的语法,能够被方便的转成其他类型(如html或pdf)的文件。
如果要用RMarkdown,首先要下载R和RStudio。
R Markdown是通过R语言制作动态文档的文件格式。
R Markdown文档编辑需要 rmarkdown包,rmarkdown安装需要RStudio编辑器环境,但是你可以以github途径来下载rmarkdown,并安装。
devtools:install_github("rmarkdown", "rstudio")
R Markdown是资源代码丰富并高可用的文件,你可以将通过一下两种方式改变R Markdown文件格式。
- knit - knit 文件. rmarkdown包调用knitr包, knitr 将运行所有的R代码,并将得到的结果追加到代码之后,这种工作方式非常节省实践并且报告也可复用。传统的,作者制作包含图形的报告。作者需要制作图形,保存为文件,然后copy并粘贴到最终的报告中,这个工作严重依赖人力,如果数据有变更,那么作者需要重复整个过程来更新图形。现在,再R Markdown的模板中,每个报告都包含制作图形,表格,数字所需的代码,作者可通过knit来自动完成更新。
- convert - convert 文件。rmarkdown包借助pandoc来将文件转变成新的格式,例如,你可以转变Rmd文件成HTML, PDF, 或Microsoft Word文件,你甚至可以转变成 HTML5 或 PDF 幻灯片,rmarkdown保持文本,代码结果与Rmd文件中的结构一致。这些转变能力能让你markdown编辑,并方便的改变格式,你可以将R代码放入knit,并以任何一种格式分享个其他人。
在实际应用中,作者经常同时用knit 和 convert文档。在本文,将用render 命令来对R markdwon文件执行 knitting 和 converting过程。
你可以认为的用render作用到R Markdown 文件, 如: rmarkdown::render(). 上面的代码渲染成HTML文件格式之后的结果如下图。
rmarkdown::render(),R markdown与RStudio深度合作
integrated into the RStudio IDE
,因为,你可以通过按键来完成以上命令。
R Markdown下载和文件创建
install.packages("rmarkdown") library(rmarkdown)
下载完成后,打开RStudio,通过File -> New File -> R Markdown创建一个Rmd文件。
(也可以直接进行第二步,会自动进行安装)
R Markdown文件中的三个模块
The YAML Header
在所有RMarkdown文件中的头部都会有一个YAML头模块,利用---分隔开,包含标题,作者,日期以及文件类型。
--- title: "RMarkdown test" author: Gremmie date: 13/12/2022 output: html_document ---
Code Chunks
在YAML头模块后j是代码块,可以写自己的代码,相应的解释以及输出。代码块需要利用'''来进行分割,可以利用Run只跑这一段代码。这一部分的书写和R一样,只是要注意分块要根据功能来,不然会不美观。
```{r car} summary(cars) ```
上述代码块的名字为car。除此之外,数据,文件,以及包如果要包含,也要写到代码中。
上述方法得到的最后结果代码块是会显出出来的,如果不想显示代码块,只显示结果的话可以利用echo。如果在给定变量的时候不想显示的话,可以利用include。隐藏警告可以利用warning。
```{r pressure, echo=FALSE} plot(pressure) ```
knitr嵌入R代码
knitr包 能够兼容markdown语法,尤其包含执行R代码的能力。
渲染报告的过程中, knitr 将执行代码并将输出的结果展示。可以选择性的展示:之展示代码,只展示结果,代码与结果同时展示。
想嵌入R代码在报告中,用两行```将代码包围,在第一个``` {r}, 用于通知knitr下面的将是R代码,具体模板如下:
Here's some code ```{r} dim(iris) ```
在渲染文档的时候, knitr将运行代码并将结果追加在代码之后,knitr提供格式和语法高亮展示R代码和代码运行结果。
作为上面R代码的markdown结果:
如果不想将结果results 追加到报告中,可以将eval = FALSE 参数加入大括号中,这样做的结果就是只把代码放入报告中,而不执行。
只将结果放入报告中,参数echo = FALSE 而不显示代码:
echo = FALSE同样实用于作图:
参数echo 和 eval不仅仅用于自定义code, 你可以通过 rmarkdown 和 knitr 进行学习。
行间代码
嵌入R代码到文本当中,在代码的两侧用点’来包围,如下:
Two plus two equals `r 2 + 2`.
knitr 将用代码结果代替R代码,如下图所示:
图片和表格插入
直接将plot和表格的名称写入Code Chunks即可。
其他插入表格的方式
kable
```{r kable} library(knitr) kable(cars, digits=2) ```
pander
```{r pander} library(pander) pander(cars,digits=2) ```
手动画表(一脸认真
| Plant | Temp. | Growth | |:------|:-----:|-------:| | A | 20 | 0.65 | | B | 20 | 0.95 | | C | 20 | 0.15 |
文本格式
对于不同的文本格式,语法如下:
*斜体* **粗体** 'code' # 一级标题 ## 二级标题 * 用点列举 1. 顺序列举 [Link](https://www.google.com) $formula$
YAML 渲染参数
YAML header将决定如何展现你的 .Rmd file.文件,用两个 --- 包围,如下:
--- title: "Untitled" author: "Gremmie" date: "July 10, 2022" output: html_document --- Some inline R code, `r 2 + 2`.
output: 决定最后的文件类型。
output: 选择其中一种类型的文件类型
- html_document,
- pdf_document,
- word_document,
RStudio IDE knit更加方便的进行设置。
幻灯片:
可以将文档转换为幻灯片:
- 参数设定output: ioslides_presentation 创建ioslides (HTML5)幻灯片
- 参数设定output: beamer_presentation 创建 a beamer (PDF) 幻灯片
Note: 默认情况下RStudio编辑器中knitr没有默认选项,先在命令中修改输出类型,RStudio会输出类型加入默认选项菜单。
具体参数详见rmakdown.rstudio.com
总结
R Markdown 提供快速,可复用的报告方式,可以在markdwon中编写报告,并用knitr嵌入代码,可以随时更新代码,最终的文档可以转变成任何文件类型,
Introduction to interactive documents, 将教你如何将shiny的互动元素加入到markdown中。