R Markdown 使用方法筆記

記錄一些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.widthfig.height來設(shè)置寬和高,舉例:
```{r scatterplot, fig.width=8, fig.height=6}
plot(x,y)
  • 使用include=FALSE隱藏所有的代碼、結(jié)果和圖像,同時(shí)使用include=TRUEresults="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=FALSEmessage=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, and out.width='\\textwidth'而不是out.width=\textwidth
  • 使用TRUE/FALSE 而不是true/false

[參考文獻(xiàn)]:

  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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容