基本概念
- Markdown:是一種為了源文件易讀性,易維護性,方便快速寫作,合作修改的文本語法。原生支持生成html。不支持矢量圖和表的繪制。
- 注意 :Markdown有許多變異版本,比如Github Flavored Markdown支持代碼語法高亮。
- R Markdown:這是一個國人開發的文檔格式,完美銜接了R,\( LaTex \)和Markdown,使得文章既有Markdown的簡潔語法,又有R和LaTex強大的數學表達和圖表能力。
- Pandoc:可以把這個看成是萬能文檔格式轉換器,支持html, pdf, \( LaTex \),MS Word,Markdown……等文檔格式的互相轉換。
使用前須知
Rmd文檔翻譯不是R的標准功能,必須要安裝第三方包,請按照以下的步驟進行:
- 打開RStudio
- 確保已經連接互聯網
- 在Console(控制台)下輸入命令
- install.packages(“knitr”)
- 新建一個 R Markdown 文檔,享受寫作吧!
Markdown學習幫助
Markdown的語法用兩只手就能數完,一般你只需要看看別人寫的Rmd/md文檔,你就能很快上手。如果你需要Markdown語法的幫助,在RStudio下新建一個Rmd文檔,你將看到一個寫着“MD”的按鈕,點擊它你就能獲得幫助了。
R Markdown生成流程
- 編輯好Rmd文檔,點擊按鈕“Knit HTML”
- Knitr將Rmd中的LaTex和R翻譯,生成標准的Markdown文檔(后綴名md)
- 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)

嵌入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的一份簡短介紹: 陽老師的博客
