R Markdown 設置和使用


1 簡介

R Markdown

R Markdown的基本語法與 Markdown 基本一致 [使用方法],最核心的區別是:

寫入代碼區域的代碼能在編譯的時候同時生成相應的圖、表和運算結果,省去了保存和插入的過程。
能保存為 HTMLWORDPDF等格式。 PDF需要LaTex的支持。

本文關於

2 安裝

如果已經安裝好了R Studio和R。下一步需要做的包括:

  1. 安裝Pandoc和你的系統需要的LaTex。Pandoc還好,LaTex完整版下了好久。
  2. 更改Global Setting,告訴R Studio你用什么來編譯R Markdown里面的代碼。
  3. 下載一系列相關的包(當你新建Markdown文檔和保存的時候R Studio會自動提醒你完成)。

具體過程都沒寫,很簡單,過程請參考這里

其實MiKTeX裝得很懵逼。
R給的地址是:http://miktex.org/2.9/setup
MiKTex給的地址是:https://miktex.org/download

我也不知道上面兩個地址區別是什么,一開始就下了R給的地址里的Net installer
運行了之后下了2個多G的東西,可是貌似還是沒有真的安裝,然后又運行了一次Net Installer,這次讓我選了安裝地址。
然后關了一次R Studio就找到LaTex了。

3 設置 YAML

完成對R Studio的全局配置后,對每個Rmd文件(R markdown)在最開頭兩條線之間進行設置才是更重要的。這個部分叫做 YAML

---
title: "標題"
author: "作者"
output:
  word_document: default
  html_document: default
  pdf_document:
    includes:
      in_header: header.tex
    keep_tex: yes   
    latex_engine: xelatex

---

## 4 如何編輯 Rmd 文檔

編輯的過程總結起來就是
1 我添加的是普通的文字。

  • 那就按照Markdown寫吧,你看到過的功能R都支持。

2 我添加的是代碼。

  • 那就放到代碼區域里面去,和Markdown的代碼標記不太一樣,多了 {}

```{r}
code
```

3 然后在 {} 里告訴 R Studio 你希望顯示什么:

  • 我只想顯示代碼 echo = FALSE, eval = FALSE
  • 我只想顯示結果 echo = FALSE, eval = TRUE
  • 我想要代碼+編譯結果 echo = TRUE,eval = TRUE

4 如果是在行內中添加代碼,沒有{}

`r 2+ 2`


##5 導出 從Rmd格式可以導出為三種格式,用[Pandoc](http://www.pandoc.org/installing.html)實現。 1. Word 2. HTML 3. PDF(額外需要LaTex支持,並且對中文的支持需要額外的設定)。

步驟

  • 在YMAL里面設置 output: pdf_document,或者word_document, html_document
  • 設定好了之后三種導出的方法都一樣,點擊代碼窗口上面的藍色毛線團標記 圖片名稱

knit本身是編織,所以就是把代碼織成文本吧。

關於PDF

  • 首先為了支持中文,需要 Global Setting 里選 xelatex作為LaTex引擎,也可以在 YAML 加入說明。
  • 然后對LaTex進行配置。在 YAML 里加入 header.tex:
outputs:  
  html_document: default
  word_document: default
  pdf_document:
    includes:
      in_header: header.tex
      keep_tex: yes
      latex_engine: xelatex
  

注意正確的縮進和冒號。
以上意思是,輸出為html,word和pdf。html和word為默認設置。pdf設置包括,in_header,keep_tex和latex_engine。
如果一個設置還沒到具體的內容,它緊接的是冒號,換行后需要縮進兩個空格再開始。
如果已經指向明確的內容,結束沒有冒號,換行之后保存和上行一樣的縮進。

  • header.tex需要和你的Rmd文檔放到一個路徑,其中內容是:
\usepackage{xeCJK}
\setCJKmainfont{Microsoft Yahei}  % Chinese font
\setmainfont{Georgia} % English font
\setromanfont{Georgia} % 
\setmonofont{Courier New} % the font used for code
\parindent 2em   % indentation

以上代碼從別人那里copy來的時候,% 后面注釋用的中文。可是在運行的時候R報錯,原因應該和下面參考里說的一樣,中文亂碼。
存成UTF-8 就沒問題了。可是我不會,還是刪了中文來的快。

錯誤提示:pandoc document conversion failed with error 1

更詳細說明參考這里

6 實時更新設置

編輯的同時看到結果,方法


## 參考資料 * 官方說明[R Markdown Cheatsheet](https://www.rstudio.com/wp-content/uploads/2015/02/rmarkdown-cheatsheet.pdf)。 * 另一個寫的很好的[配置說明](http://blog.rainy.im/2015/05/16/rmarkdown-in-rstudio/)。其中提醒需要安裝或更新 `devtools` 包。
## 寫在最后 R + R Studio + 我 我的正職應該是個搞生態學的(吧?)。計算機方面,初中的時候家里有了一個386,覺得這個東西雖然長得像電視,可是啥也干不了...還經常藍屏。高中學的時候學了DOS,學會的是怎么用命令行新建文檔,可是屏幕還是沒有電視好看,不過可以玩游戲了,只是經常在大場面卡死,網絡版玩兒了下也放棄了,太卡。后來到了大學,計算機技術終於正真開始侵入到我這種小渣渣的生活了。那時候有了淘寶,網銀,我也和大家一起考了C語言,可是我貌似就記得有個 `for`。嗯,說這些想說明,編程這件事情上,我只是一個小小的學渣。可我是個搞科學的,貌似我應該特別會統計學,還特別熟計算。

直到有一天,我遇到了 R 這個坑了我也救了我的計算機語言。據估計只有1%的人使用R語言編程。這群人的背景有個共同點就是他們都是搞科學的。 在這群搞科學的人手里發揚光大了之后,R語言能完成了事情可謂百(za)花(qi)齊(za)放(ba)。誰都能隨便寫寫包,然后誰都能拿來用。對我來說,沒有R就沒有沒有畢業,可是在接觸了它6年之后,我才發現我從來沒有把它當做一個計算機語言來用。我也沒有想過每天都打開的R Studio到底是啥。對我來說,R只是一個能幫我做圖,做方差分析,做PCA的工具。我需要的是找到什么人已經解決的途徑,而不是怎么樣自己創造一個途徑。

最近自學了 PerlPython 之后更強烈的覺得,當初 R 的打開方式雖然讓我能迅速地解決科研中的應用問題,可是也完全沒有機會看到它作為計算機語言的可能性。就這么用下去,我相當於永遠等着別人來解決我現在的問題,沒有辦法解決自己的問題。語言存在的價值在於交流和創造,學人類語言的首要目的是交流,而學計算機語言的首要目的應該是創造(Development)。

來cnblog幾天,發現R語言在這兒關注的人的確很少,不過前幾天看到一個關於推廣 Awesome R!的帖子,想必R也會成為大家的第三,第四個語言的選擇吧。

之前,在兩台電腦上設置好了Sublime+Markdown+Snippet,現在回到主要工作環境R Studio,使用它提供的 R Markdown


免責聲明!

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



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