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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM