收獲新技能-RMarkdown

Markdown和富文本編輯器

一般來說,在富文本編輯器輸入一段文本,選擇具體的格式后,能夠直接顯示對應(yīng)的結(jié)果。例如我們常見的 Office Word 就是典型的富文本編輯器。優(yōu)勢在于簡單、直觀,所見即所得。但是缺點(diǎn)是效率低下。

Markdown是一種通過標(biāo)記字符,對內(nèi)容進(jìn)行樣式更改的語法。這樣,使用Markdown編輯器時(shí),只需要專注內(nèi)容的輸出,無需離開鍵盤即可完成:編輯(文本字符)+ 排版(標(biāo)記字符);最后的呈現(xiàn)結(jié)果一致,可預(yù)見,不用擔(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代碼,其他語法基本和正常markdown語法相同。

傳統(tǒng)的制作包含圖形的報(bào)告,需要制作圖形,保存為文件,然后copy并粘貼到最終的報(bào)告中,這個(gè)工作嚴(yán)重依賴人力,如果數(shù)據(jù)有變更,那么需要重復(fù)整個(gè)過程來更新圖形。而在R Markdown的模板中,每個(gè)報(bào)告都包含制作圖形、表格、數(shù)字所需的代碼,可通過knit自動(dòng)完成更新。knit會(huì)運(yùn)行所有的R代碼,并將得到的結(jié)果追加到代碼之后,在做一些可重復(fù)性報(bào)告上,能夠提高效率,運(yùn)行代碼,更新數(shù)據(jù)源,報(bào)告就能更新。

RMarkdown的兩大特別之處,一是通過Pandoc將Markdown轉(zhuǎn)化成LaTex,再由強(qiáng)大的LaTex轉(zhuǎn)換成HTML、PDF、Word,理論上來說借助LaTex可以生成學(xué)術(shù)論文、期刊雜志、數(shù)據(jù)報(bào)告等規(guī)范格式的文檔;另一大特點(diǎn)是整合了R語言的環(huán)境,可以在Markdown語法中code block直接執(zhí)行R語言代碼并將結(jié)果插入文檔。

由于我們報(bào)告里有中文,生成pdf和word常常會(huì)有些問題,生成html是最常用的一種格式。

圖片來源于網(wǎng)絡(luò)



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)

```

# 一、人類語言——markdown語法

RMarkdown中默認(rèn)的輸入方式是文字語言。在某段文字后雙擊回車鍵(enter)即另起新一段,單擊enter不會(huì)另起一段。隔開多行和隔開一行效果相同。

### 1.字體

**加粗**

*斜體*

***加粗斜體***

~~刪除線~~

<font face="微軟雅黑">我是微軟雅黑</font>

<font color=#0099ff size=12 face="黑體">黑體</font>

### 2.引用

>引用

>???? 加5個(gè)空格

>>第二層引用

### 3.分級列表

\* \+ \- 都可以表示無序列表,需要在符號后打一個(gè)空格。序號前打一個(gè)空格表示下一級列表。跳脫符\\可以顯示符號而不顯示格式。

* 無序列表1

+ 無序列表2

- 無序列表3

1. 有序列表1

2. 有序列表2

i) 有序列表3

i) 有序列表4

### 4.表格

| 表頭1 | 表頭2 | 表頭3 |

| :--: | -- | ---: |

| 中心對齊 | 左對齊 | 右對齊 |

### 5.分隔線

- - -

***

### 6.代碼

`代碼片`

```

代碼塊

```

# 二、機(jī)器語言——R代碼

insert可以在光標(biāo)處插入編碼框。插入的代碼框與正文背景顏色不同,并與正文以\`\`\`{r}和\`\`\`隔開。不加{r}的代碼塊不會(huì)運(yùn)行。

### 1.插入R代碼

默認(rèn)狀態(tài)下生成的代碼框會(huì)在輸出的文檔中顯示代碼框中的全部內(nèi)容,連同結(jié)果一起顯示出來。

```{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)頁

```

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é)果輸出前綴符號

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; 字符):保存圖形類型,高級圖形(high)、不保存(none)、所有圖形(all)、第一張(first)、最后一張(last)

fig.show:(asis; 字符):展示方式,緊隨代碼輸出(asis)、最后統(tǒng)一輸出(hold)、動(dòng)畫輸出(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; 字符):對齊方式,不做調(diào)節(jié)(default)、左(left)、右(right)、居中(center)

interval:(1; 數(shù)值):動(dòng)畫參數(shù),切換畫面時(shí)間,單位為秒

文本前格式:

---

title: "題目"

output:

html_document:

toc: TRUE #目錄

fig_width: 7

fig_height: 4.5

author: "作者"

date: "2020年6月15日"

---

全局代碼塊:

避免每次使用代碼塊都重復(fù)敲代碼來設(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為文件名開頭被保存在主目錄中)。如果在某個(gè)特定代碼塊中需要不一樣的設(shè)置,可以單獨(dú)設(shè)置該代碼塊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容