R Markdown 使用方法笔记
记录一些R Markdown中与一般的Markdown不同的用法。
1.代码块设置
echo=FALSE
最终的文档中不会显示代码,只会显示代码运行的结果和图像results="hide"
隐藏结果,显示图像include=FALSE
隐藏代码和运行的输出(写报告时可使用include=FALSE
来隐藏所有的代码,从而突出图像。)fig.show="hide"
隐藏图像- 对于图像,可以通过
fig.width
和fig.height
来设置宽和高,举例:
```{r scatterplot, fig.width=8, fig.height=6}
plot(x,y)
- 使用
include=FALSE
隐藏所有的代码、结果和图像,同时使用include=TRUE
和results="hide"
则会隐藏结果显示图像 eval=FALSE
显示代码而不显示运行结果- 表格输出设置:
```{r, results='asis'}
knitr::kable(mtcars)
2.全局代码块设置
避免每次使用代码块都重复敲代码来设置代码块,可按如下设置初始代码块:
```{r global_options, include=FALSE}
knitr::opts_chunk$set(fig.width=12, fig.height=8, fig.path='Figs/',
echo=FALSE, warning=FALSE, message=FALSE)
warning=FALSE
和message=FALSE
最终文档中不会显示R软件任何的提示信息, fig.path='Figs/'
把图片保存在Figs子文件夹中(默认情况下图片不会被保存,注意Figs后面的斜线“/”不可少,否则图片会以Figs为文件名开头被保存在主目录中)。
如果在某个特定代码块中需要不一样的设置,可以单独设置该代码块,如:
```{r a_taller_figure, fig.height=32}
par(mfrow=c(8,2))
for(i in 1:16)
plot(x[,i], y[,i])
在给合作者的报告中,可能会使用include=FALSE, echo=FALSE
作为全局设置,生成图像时使用include=TRUE
,这样可以只输出图像。
3.行内代码(In-line code)
在报告中不要写成“There are 168 individuals.” 可以插入一点代码,比如:
There are `r nrow(my_data)` individuals.
又比如:
The estimated correlation between x and y was `r cor(x,y)`.
在R Markdown中,行内代码以 `r 和
`来表示,两者间的代码会运行并显示结果。
注意:要确保行内代码没有跨行。
4.YAML header
YAML 是一种用于指定数据的简洁的文本格式, 与JSON有些类似但可读性更强。
在R Markdown文档开头,编写如下一段代码:
---
title: "An example Knitr/R Markdown document"
author: "Karl Broman"
date: "3 Feb 2015"
output: html_document
---
那么,文档的结尾会包含格式化的标题、作者名和日期。
author: "[Karl Broman](http://kbroman.org)"
甚至是R代码:
date: "`r Sys.Date()`"
output: html_document
将RMD转化为html,pdf_document
或者word_document
分别转为PDF和Word .docx文件。
5.其他关于代码块设置的代码问题
- 必须写在一行内,不含空格和句点,可以使用-和_
fig.path="abc"
而不是fig.path=abc
, andout.width='\\textwidth'
而不是out.width=\textwidth
- 使用TRUE/FALSE 而不是true/false
[参考文献]:
1. http://kbroman.org/knitr_knutshell/pages/Rmarkdown.html
2. https://yihui.name/knitr/options/#package_options
3. http://rmarkdown.rstudio.com/authoring_rcodechunks.html