R Markdown 使用方法笔记

记录一些R Markdown中与一般的Markdown不同的用法。

1.代码块设置

  • echo=FALSE最终的文档中不会显示代码,只会显示代码运行的结果和图像
  • results="hide"隐藏结果,显示图像
  • include=FALSE隐藏代码和运行的输出(写报告时可使用include=FALSE来隐藏所有的代码,从而突出图像。)
  • fig.show="hide" 隐藏图像
  • 对于图像,可以通过fig.widthfig.height来设置宽和高,举例:
```{r scatterplot, fig.width=8, fig.height=6}
plot(x,y)
  • 使用include=FALSE隐藏所有的代码、结果和图像,同时使用include=TRUEresults="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=FALSEmessage=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, and out.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

 

posted @ 2017-12-26 11:33  huidan  阅读(20500)  评论(0编辑  收藏  举报