Markdown和富文本編輯器
一般來(lái)說(shuō)慌洪,在富文本編輯器輸入一段文本,選擇具體的格式后,能夠直接顯示對(duì)應(yīng)的結(jié)果遵绰。例如我們常見(jiàn)的 Office Word 就是典型的富文本編輯器。優(yōu)勢(shì)在于簡(jiǎn)單增淹、直觀椿访,所見(jiàn)即所得。但是缺點(diǎn)是效率低下虑润。
Markdown是一種通過(guò)標(biāo)記字符成玫,對(duì)內(nèi)容進(jìn)行樣式更改的語(yǔ)法。這樣拳喻,使用Markdown編輯器時(shí)哭当,只需要專注內(nèi)容的輸出,無(wú)需離開(kāi)鍵盤(pán)即可完成:編輯(文本字符)+ 排版(標(biāo)記字符)冗澈;最后的呈現(xiàn)結(jié)果一致钦勘,可預(yù)見(jiàn),不用擔(dān)心格式錯(cuò)誤或者樣式變化亚亲。
RMarkdown
Analyze. Share. Reproduce.
Your data tells a story. Tell it with R Markdown. Turn your analyses into high quality documents, reports, presentations and dashboards.
RMarkdown可以嵌入R代碼彻采,其他語(yǔ)法基本和正常markdown語(yǔ)法相同。
傳統(tǒng)的制作包含圖形的報(bào)告捌归,需要制作圖形肛响,保存為文件,然后copy并粘貼到最終的報(bào)告中惜索,這個(gè)工作嚴(yán)重依賴人力特笋,如果數(shù)據(jù)有變更,那么需要重復(fù)整個(gè)過(guò)程來(lái)更新圖形巾兆。而在R Markdown的模板中雹有,每個(gè)報(bào)告都包含制作圖形偿渡、表格、數(shù)字所需的代碼霸奕,可通過(guò)knit自動(dòng)完成更新溜宽。knit會(huì)運(yùn)行所有的R代碼,并將得到的結(jié)果追加到代碼之后质帅,在做一些可重復(fù)性報(bào)告上适揉,能夠提高效率,運(yùn)行代碼煤惩,更新數(shù)據(jù)源嫉嘀,報(bào)告就能更新。
RMarkdown的兩大特別之處魄揉,一是通過(guò)Pandoc將Markdown轉(zhuǎn)化成LaTex剪侮,再由強(qiáng)大的LaTex轉(zhuǎn)換成HTML、PDF洛退、Word瓣俯,理論上來(lái)說(shuō)借助LaTex可以生成學(xué)術(shù)論文、期刊雜志兵怯、數(shù)據(jù)報(bào)告等規(guī)范格式的文檔彩匕;另一大特點(diǎn)是整合了R語(yǔ)言的環(huán)境,可以在Markdown語(yǔ)法中code block直接執(zhí)行R語(yǔ)言代碼并將結(jié)果插入文檔媒区。
由于我們報(bào)告里有中文驼仪,生成pdf和word常常會(huì)有些問(wèn)題,生成html是最常用的一種格式袜漩。
RMarkdown的使用
(1)創(chuàng)建一個(gè)rmarkdown.Rmd
(這里就不排版了)
---
title: "my first rmarkdown"
author: "me"
date: "2020/5/9"
output: html_document
---
### 安裝rmarkdown
```
install.package(“rmarkdown”)
library(rmarkdown)
```
# 一绪爸、人類語(yǔ)言——markdown語(yǔ)法
RMarkdown中默認(rèn)的輸入方式是文字語(yǔ)言。在某段文字后雙擊回車鍵(enter)即另起新一段宙攻,單擊enter不會(huì)另起一段毡泻。隔開(kāi)多行和隔開(kāi)一行效果相同。
### 1.字體
**加粗**
*斜體*
***加粗斜體***
~~刪除線~~
<font face="微軟雅黑">我是微軟雅黑</font>
<font color=#0099ff size=12 face="黑體">黑體</font>
### 2.引用
>引用
>???? 加5個(gè)空格
>>第二層引用
### 3.分級(jí)列表
\* \+ \- 都可以表示無(wú)序列表粘优,需要在符號(hào)后打一個(gè)空格仇味。序號(hào)前打一個(gè)空格表示下一級(jí)列表。跳脫符\\可以顯示符號(hào)而不顯示格式雹顺。
* 無(wú)序列表1
+ 無(wú)序列表2
- 無(wú)序列表3
1. 有序列表1
2. 有序列表2
i) 有序列表3
i) 有序列表4
### 4.表格
| 表頭1 | 表頭2 | 表頭3 |
| :--: | -- | ---: |
| 中心對(duì)齊 | 左對(duì)齊 | 右對(duì)齊 |
### 5.分隔線
- - -
***
### 6.代碼
`代碼片`
```
代碼塊
```
# 二丹墨、機(jī)器語(yǔ)言——R代碼
insert可以在光標(biāo)處插入編碼框。插入的代碼框與正文背景顏色不同嬉愧,并與正文以\`\`\`{r}和\`\`\`隔開(kāi)贩挣。不加{r}的代碼塊不會(huì)運(yùn)行。
### 1.插入R代碼
默認(rèn)狀態(tài)下生成的代碼框會(huì)在輸出的文檔中顯示代碼框中的全部?jī)?nèi)容,連同結(jié)果一起顯示出來(lái)王财。
```{r}
a <- c(1,2,3,4,5)
b <- c(6,7,8,9,10)
d <- a+b
a;b;d
```
### 2.行內(nèi)代碼
`r a`
### 3.隱藏結(jié)果
results="hide"可以將運(yùn)行結(jié)果隱藏卵迂,但圖像是顯示的。 eval=FALSE顯示代碼而不顯示運(yùn)行結(jié)果
```{r,results='hide'}
a
```
### 4.不顯示代碼
echo=FALSE不在報(bào)告正文中顯示某個(gè)框中的代碼绒净,只顯示結(jié)果和圖像见咒。 include=FALSE隱藏所有的代碼、輸出和圖像挂疆。
```{r,echo=FALSE}
e <- b-a
e
```
### 5.作圖
在需要做圖的情況下改览,我們可以在代碼框中運(yùn)行plot()命令。 同時(shí)使用include=TRUE和results="hide"會(huì)隱藏結(jié)果顯示圖像缤言。 fig.show="hide"可隱藏圖像宝当。
```{r}
plot(d)
```
### 6.表格
```{r}
fr <- data.frame(a,b,d,e)
fr
```
### 7.得到有表格線的表格
```{r}
knitr::kable(fr)
```
# 三、保存knit
### 1.保存為網(wǎng)頁(yè)
```
output:
? html_document:
? toc: true theme: united
```
### 2.保存為word
```
output: word_document
```
### 3.保存為pdf
(保存失敗了)
```
outputs:
? pdf_document:
? ? includes:
? ? ? in_header: header.tex
? ? latex_engine: xelatex
```
(2)保存成html
效果如圖
(3)保存成word
補(bǔ)充內(nèi)容
eval:(TRUE; 邏輯):是否執(zhí)行代碼
tidy:(TRUE; 邏輯):是否整理代碼
prompt:(FALSE; 邏輯):是否添加引導(dǎo)符>
highlight:(TRUE; 字符):是否高亮代碼
size:(normalsize; 字符):大小
background:(#F7F7F7; 字符或數(shù)值):背景顏色
comment:(##; 字符):結(jié)果輸出前綴符號(hào)
echo:(TRUE; 邏輯或數(shù)值):是否輸出代碼或輸出哪些行
results:(markup; 字符):裝裱輸出(markup)胆萧、原樣輸出(asis)庆揩、隱藏(hide)
warning, error, message:(TRUE; 邏輯):是否顯示相應(yīng)信息
split:(FALSE; 邏輯):是否剝離代碼和文本到外部文件
include:(TRUE; 邏輯):是否保留代碼或結(jié)果到最終文檔
fig.path:(figure/; 字符):圖片路徑,支持前綴模式(figure/prefix-)
fig.keep:(high; 字符):保存圖形類型跌穗,高級(jí)圖形(high)订晌、不保存(none)、所有圖形(all)瞻离、第一張(first)腾仅、最后一張(last)
fig.show:(asis; 字符):展示方式乒裆,緊隨代碼輸出(asis)套利、最后統(tǒng)一輸出(hold)、動(dòng)畫(huà)輸出(animate)
dev:(LaTeX 為pdf, HTML/markdown 為png; 字符):輸出設(shè)備鹤耍,knitr 支持很多種設(shè)備
fig.width, fig.height:(7; 數(shù)值):圖片文件的寬肉迫、高(英寸2.54cm 為單位)
out.width, out.height:(NULL; 字符):圖片在輸出文檔中的寬、高
fig.align:(default; 字符):對(duì)齊方式稿黄,不做調(diào)節(jié)(default)喊衫、左(left)、右(right)杆怕、居中(center)
interval:(1; 數(shù)值):動(dòng)畫(huà)參數(shù)族购,切換畫(huà)面時(shí)間,單位為秒
文本前格式:
---
title: "題目"
output:
html_document:
toc: TRUE #目錄
fig_width: 7
fig_height: 4.5
author: "作者"
date: "2020年6月15日"
---
全局代碼塊:
避免每次使用代碼塊都重復(fù)敲代碼來(lái)設(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=FALSE 和message=FALSE最終文檔中不會(huì)顯示R軟件任何的提示信息寝杖, fig.path='Figs/'把圖片保存在Figs子文件夾中(默認(rèn)情況下圖片不會(huì)被保存,注意Figs后面的斜線“/”不可少互纯,否則圖片會(huì)以Figs為文件名開(kāi)頭被保存在主目錄中)瑟幕。如果在某個(gè)特定代碼塊中需要不一樣的設(shè)置,可以單獨(dú)設(shè)置該代碼塊。