使用RStudio寫作Rmd文檔


基本概念

  • Markdown:是一種為了源文件易讀性,易維護性,方便快速寫作,合作修改的文本語法。原生支持生成html。不支持矢量圖和表的繪制。
    • 注意 :Markdown有許多變異版本,比如Github Flavored Markdown支持代碼語法高亮。
  • R Markdown:這是一個國人開發的文檔格式,完美銜接了R,\( LaTex \)和Markdown,使得文章既有Markdown的簡潔語法,又有R和LaTex強大的數學表達和圖表能力。
  • Pandoc:可以把這個看成是萬能文檔格式轉換器,支持html, pdf, \( LaTex \),MS Word,Markdown……等文檔格式的互相轉換。

使用前須知

Rmd文檔翻譯不是R的標准功能,必須要安裝第三方包,請按照以下的步驟進行:

  1. 打開RStudio
  2. 確保已經連接互聯網
  3. 在Console(控制台)下輸入命令
    • install.packages(“knitr”)
  4. 新建一個 R Markdown 文檔,享受寫作吧!

Markdown學習幫助

Markdown的語法用兩只手就能數完,一般你只需要看看別人寫的Rmd/md文檔,你就能很快上手。如果你需要Markdown語法的幫助,在RStudio下新建一個Rmd文檔,你將看到一個寫着“MD”的按鈕,點擊它你就能獲得幫助了。

R Markdown生成流程

  1. 編輯好Rmd文檔,點擊按鈕“Knit HTML”
  2. Knitr將Rmd中的LaTex和R翻譯,生成標准的Markdown文檔(后綴名md)
  3. knitr自動通過標准md文檔生成HTML文檔。

注意 :只要有了md文檔,你可以使用Pandoc或其他工具轉換成大部分的文檔格式

一些問題

特別注意

  • 目前RStudio似乎還只支持英文名稱的文件名,如果在點擊“Knit HTML”按鈕時出現"Knitr return command status 1"等類似的錯誤信息,請確保文件所在路徑中不包含中文、空格等非法字符。
  • 一般生成html時,會使用系統默認的編碼格式,如果發現生成亂碼,請在"File->Save with encoding"下改成合適的編碼即可。比如:中文簡體-> GB2312

用R語言繪制圖表,用\( LaTex \)書寫數學公式

這里有兩個用R繪制圖表的例子,需要注意的是,最終文本不僅會將最后生成的圖表打印,還會同時打印生成圖表的命令。這也是科學界的慣例了,這樣審稿人或你的合作者就能很方便地校驗你的計算步驟,並且修改錯誤了。

嵌入R代碼

觀察源碼和最后生成的圖表,你將發現嵌入R代碼是一件非常簡單的事情

繪制統計表:

summary(cars)
##      speed           dist    
##  Min.   : 4.0   Min.   :  2  
##  1st Qu.:12.0   1st Qu.: 26  
##  Median :15.0   Median : 36  
##  Mean   :15.4   Mean   : 43  
##  3rd Qu.:19.0   3rd Qu.: 56  
##  Max.   :25.0   Max.   :120

繪制圖:

plot(cars)

plot of chunk unnamed-chunk-2

嵌入LaTex代碼

在前面,我已經使用了行內方式嵌入了\( LaTex \)的logo,這是使用

$latex equation$

的語法。

如果你想使用整行的latex公式,只需要使用

$$
  latex equation
$$

的語法。

比如這個公式:

$$
  \sum_{i=1}^{n}{i} = \frac{n*(n-1)}{2}
$$

將輸出:

\[ \sum_{i=1}^{n}{i} = \frac{n*(n-1)}{2} \]

R Markdown的語法糖

除此以外,R Markdown還提供了一些很方便的非標准Markdown的功能,比如:繪制簡單表格

繪制表格

繪制表格的語法非常地人性化和易讀,就像這樣:

姓名  | 學院 | 班級 | GPA      
------|------|------|------
劉洋  | 土木與交通 | 交通工程 | 3.1
劉二  | 計算機     | 軟件工程 | 3.9
劉三  | 哲學院     | 認識論   | 3.0

將會生成:

姓名 學院 班級 GPA
劉洋 土木與交通 交通工程 3.1
劉二 計算機 軟件工程 3.9
劉三 哲學院 認識論 3.0

注意

  • 每行不一定要對齊
  • 對於是否繪制行間線,可以通過CSS改變主題實現
  • 對於非常復雜的表格,還可以用嵌入LaTex代碼繪制

更多入門介紹

這里有一個對markdown的一份簡短介紹: 陽老師的博客


免責聲明!

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



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