記錄一些R Markdown中與一般的Markdown不同的用法。
1.代碼塊設(shè)置
-
echo=FALSE最終的文檔中不會(huì)顯示代碼,只會(huì)顯示代碼運(yùn)行的結(jié)果和圖像 -
results="hide"隱藏結(jié)果,顯示圖像 -
include=FALSE隱藏代碼和運(yùn)行的輸出(寫報(bào)告時(shí)可使用include=FALSE來隱藏所有的代碼,從而突出圖像。) -
fig.show="hide"隱藏圖像 - 對于圖像,可以通過
fig.width和fig.height來設(shè)置寬和高,舉例:
```{r scatterplot, fig.width=8, fig.height=6}
plot(x,y)
- 使用
include=FALSE隱藏所有的代碼、結(jié)果和圖像,同時(shí)使用include=TRUE和results="hide"則會(huì)隱藏結(jié)果顯示圖像 -
eval=FALSE顯示代碼而不顯示運(yùn)行結(jié)果 - 表格輸出設(shè)置:
```{r, results='asis'}
knitr::kable(mtcars)
2.全局代碼塊設(shè)置
避免每次使用代碼塊都重復(fù)敲代碼來設(shè)置代碼塊,可按如下設(shè)置初始代碼塊:
```{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最終文檔中不會(huì)顯示R軟件任何的提示信息, fig.path='Figs/'把圖片保存在Figs子文件夾中(默認(rèn)情況下圖片不會(huì)被保存,注意Figs后面的斜線“/”不可少,否則圖片會(huì)以Figs為文件名開頭被保存在主目錄中)。
如果在某個(gè)特定代碼塊中需要不一樣的設(shè)置,可以單獨(dú)設(shè)置該代碼塊,如:
```{r a_taller_figure, fig.height=32}
par(mfrow=c(8,2))
for(i in 1:16)
plot(x[,i], y[,i])
在給合作者的報(bào)告中,可能會(huì)使用include=FALSE, echo=FALSE作為全局設(shè)置,生成圖像時(shí)使用include=TRUE,這樣可以只輸出圖像。
3.行內(nèi)代碼(In-line code)
在報(bào)告中不要寫成“There are 168 individuals.” 可以插入一點(diǎn)代碼,比如:
There are `r nrow(my_data)` individuals.
又比如:
The estimated correlation between x and y was `r cor(x,y)`.
在R Markdown中,行內(nèi)代碼以 ``r 和來表示,兩者間的代碼會(huì)運(yùn)行并顯示結(jié)果。
注意:要確保行內(nèi)代碼沒有跨行。
4.YAML header
YAML 是一種用于指定數(shù)據(jù)的簡潔的文本格式, 與JSON有些類似但可讀性更強(qiáng)。
在R Markdown文檔開頭,編寫如下一段代碼:
---
title: "An example Knitr/R Markdown document"
author: "Karl Broman"
date: "3 Feb 2015"
output: html_document
---
那么,文檔的結(jié)尾會(huì)包含格式化的標(biāo)題、作者名和日期。
author: "[Karl Broman](http://kbroman.org)"
甚至是R代碼:
date: "`r Sys.Date()`"
output: html_document將RMD轉(zhuǎn)化為html,pdf_document 或者word_document分別轉(zhuǎn)為PDF和Word .docx文件。
5.其他關(guān)于代碼塊設(shè)置的代碼問題
- 必須寫在一行內(nèi),不含空格和句點(diǎn),可以使用-和_
-
fig.path="abc"而不是fig.path=abc, andout.width='\\textwidth'而不是out.width=\textwidth - 使用TRUE/FALSE 而不是true/false
[參考文獻(xiàn)]: