收获新技能-RMarkdown

Markdown和富文本编辑器

一般来说,在富文本编辑器输入一段文本,选择具体的格式后,能够直接显示对应的结果。例如我们常见的 Office Word 就是典型的富文本编辑器。优势在于简单、直观,所见即所得。但是缺点是效率低下。

Markdown是一种通过标记字符,对内容进行样式更改的语法。这样,使用Markdown编辑器时,只需要专注内容的输出,无需离开键盘即可完成:编辑(文本字符)+ 排版(标记字符);最后的呈现结果一致,可预见,不用担心格式错误或者样式变化。


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语法相同。

传统的制作包含图形的报告,需要制作图形,保存为文件,然后copy并粘贴到最终的报告中,这个工作严重依赖人力,如果数据有变更,那么需要重复整个过程来更新图形。而在R Markdown的模板中,每个报告都包含制作图形、表格、数字所需的代码,可通过knit自动完成更新。knit会运行所有的R代码,并将得到的结果追加到代码之后,在做一些可重复性报告上,能够提高效率,运行代码,更新数据源,报告就能更新。

RMarkdown的两大特别之处,一是通过Pandoc将Markdown转化成LaTex,再由强大的LaTex转换成HTML、PDF、Word,理论上来说借助LaTex可以生成学术论文、期刊杂志、数据报告等规范格式的文档;另一大特点是整合了R语言的环境,可以在Markdown语法中code block直接执行R语言代码并将结果插入文档。

由于我们报告里有中文,生成pdf和word常常会有些问题,生成html是最常用的一种格式。

图片来源于网络



RMarkdown的使用

(1)创建一个rmarkdown.Rmd

(这里就不排版了)

---

title: "my first rmarkdown"

author: "me"

date: "2020/5/9"

output: html_document

---

### 安装rmarkdown

```

install.package(“rmarkdown”)

library(rmarkdown)

```

# 一、人类语言——markdown语法

RMarkdown中默认的输入方式是文字语言。在某段文字后双击回车键(enter)即另起新一段,单击enter不会另起一段。隔开多行和隔开一行效果相同。

### 1.字体

**加粗**

*斜体*

***加粗斜体***

~~删除线~~

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

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

### 2.引用

>引用

>     加5个空格

>>第二层引用

### 3.分级列表

\* \+ \- 都可以表示无序列表,需要在符号后打一个空格。序号前打一个空格表示下一级列表。跳脱符\\可以显示符号而不显示格式。

* 无序列表1

+ 无序列表2

- 无序列表3

1. 有序列表1

2. 有序列表2

i) 有序列表3

i) 有序列表4

### 4.表格

| 表头1 | 表头2 | 表头3 |

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

| 中心对齐 | 左对齐 | 右对齐 |

### 5.分隔线

- - -

***

### 6.代码

`代码片`

```

代码块

```

# 二、机器语言——R代码

insert可以在光标处插入编码框。插入的代码框与正文背景颜色不同,并与正文以\`\`\`{r}和\`\`\`隔开。不加{r}的代码块不会运行。

### 1.插入R代码

默认状态下生成的代码框会在输出的文档中显示代码框中的全部内容,连同结果一起显示出来。

```{r}

a <- c(1,2,3,4,5)

b <- c(6,7,8,9,10)

d <- a+b

a;b;d

```

### 2.行内代码

`r a`

### 3.隐藏结果

results="hide"可以将运行结果隐藏,但图像是显示的。 eval=FALSE显示代码而不显示运行结果

```{r,results='hide'}

a

```

### 4.不显示代码

echo=FALSE不在报告正文中显示某个框中的代码,只显示结果和图像。 include=FALSE隐藏所有的代码、输出和图像。

```{r,echo=FALSE}

e <- b-a

e

```

### 5.作图

在需要做图的情况下,我们可以在代码框中运行plot()命令。 同时使用include=TRUE和results="hide"会隐藏结果显示图像。 fig.show="hide"可隐藏图像。

```{r}

plot(d)

```

### 6.表格

```{r}

fr <- data.frame(a,b,d,e)

fr

```

### 7.得到有表格线的表格

```{r}

knitr::kable(fr)

```

# 三、保存knit

### 1.保存为网页

```

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

补充内容

eval:(TRUE; 逻辑):是否执行代码

tidy:(TRUE; 逻辑):是否整理代码

prompt:(FALSE; 逻辑):是否添加引导符>

highlight:(TRUE; 字符):是否高亮代码

size:(normalsize; 字符):大小

background:(#F7F7F7; 字符或数值):背景颜色

comment:(##; 字符):结果输出前缀符号

echo:(TRUE; 逻辑或数值):是否输出代码或输出哪些行

results:(markup; 字符):装裱输出(markup)、原样输出(asis)、隐藏(hide)

warning, error, message:(TRUE; 逻辑):是否显示相应信息

split:(FALSE; 逻辑):是否剥离代码和文本到外部文件

include:(TRUE; 逻辑):是否保留代码或结果到最终文档

fig.path:(figure/; 字符):图片路径,支持前缀模式(figure/prefix-)

fig.keep:(high; 字符):保存图形类型,高级图形(high)、不保存(none)、所有图形(all)、第一张(first)、最后一张(last)

fig.show:(asis; 字符):展示方式,紧随代码输出(asis)、最后统一输出(hold)、动画输出(animate)

dev:(LaTeX 为pdf, HTML/markdown 为png; 字符):输出设备,knitr 支持很多种设备

fig.width, fig.height:(7; 数值):图片文件的宽、高(英寸2.54cm 为单位)

out.width, out.height:(NULL; 字符):图片在输出文档中的宽、高

fig.align:(default; 字符):对齐方式,不做调节(default)、左(left)、右(right)、居中(center)

interval:(1; 数值):动画参数,切换画面时间,单位为秒

文本前格式:

---

title: "题目"

output:

html_document:

toc: TRUE #目录

fig_width: 7

fig_height: 4.5

author: "作者"

date: "2020年6月15日"

---

全局代码块:

避免每次使用代码块都重复敲代码来设置代码块,可按如下设置初始代码块:

```{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最终文档中不会显示R软件任何的提示信息, fig.path='Figs/'把图片保存在Figs子文件夹中(默认情况下图片不会被保存,注意Figs后面的斜线“/”不可少,否则图片会以Figs为文件名开头被保存在主目录中)。如果在某个特定代码块中需要不一样的设置,可以单独设置该代码块。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345