R-Markdown学习与使用

简介


  markdown是一种纯文本格式的标记语言,只需要简单的标记语言就可将文本格式的内容具有一定的格式。核心是将文字与排版分开,从而将注意力集中于文字本身。但其本质,Markdown 还是 HTML 的简化版。因此缺点就是当需要 PDF 和 Word 等的文档格式的排版时不能很好解决。相较于 Markdown,LaTeX 是专门为 PDF 排版而生的,但其复杂程度就要比 Markdown 高得多。有没有什么办法把Markdown 的书写便利性和 LaTeX 丰富的排版能力结合到一起呢?于是R-markdown应运而生,这还多亏了国人益辉大神,在他的新作R包knitr中,提供了Markdown支持。并说服R社区主流编辑器厂家,开源软件RStudio 提供 Markdown支持,从而使得Rmd这种新格式开始流行。
  官方指导说明介绍

优点


- 具备markdown简单的文本标记语言;

- 相较于markdown有更丰富的文档排版能力;

- 可以在生成文档时直接运行插入的代码块,并将运行结果输出在最终文档中。

基本语法


  R-markdown的基本语法与markdown基本一致,核心区别在于写入代码区域的代码能在编译的时候同时生成相应的图、表和运算结果,省去了保存和插入的过程。同时能保存为 HTML、 WORD和PDF等格式。注意 PDF需要LaTex的支持。

标题

  一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。

# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题

字体格式

**这是加粗的文字**
*这是倾斜的文字*`
***这是斜体加粗的文字***
~~这是加删除线的文字~~

字体、字号和颜色

  Markdown本身不支持修改字体、字号和颜色,要实现字体颜色、字号的设置,需要使用内嵌的HTML。实现如下所示:

<font face="宋体">宋体</font>
<font face="宋体" color=red>红色宋体</font>
<font face="宋体" color=red size=5>5号红色宋体</font>

引用

>这是引用的内容

分割线

---这是分割线
***这也是分割线

图片

![图片alt](图片地址 ''图片title'')
说明:
图片alt就是显示在图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加可不加

超链接

[超链接名](超链接地址 "超链接title")
title可加可不加

列表

无序列表

- 列表内容
+ 列表内容
* 列表内容

注意:- + * 任何一种都可以,跟内容之间都要有一个空格

有序列表

语法:数字加点
1.列表内容
2.列表内容
3.列表内容

列表嵌套

语法:
上一级和下一级之间敲三个空格即可

表格

表头|表头|表头
---|:--:|---:
内容|内容|内容
内容|内容|内容

第二行分割表头和内容。
- 有一个就行,为了对齐,多加了几个
文字默认居左
-两边加:表示文字居中
-右边加:表示文字居右
注:原生的语法两边都要用 | 包起来。此处省略

代码

单行代码

`代码内容`

多行代码

(```)
  代码...
  代码...
  代码...
(```)
注:前后三个反引号处加了小括号,为了防止转译,实际是没有的。

r-markdown基本使用方法


  在RStudio新建一个rmarkdown文件后,会出现如下一个最简单的rmarkdown的模板。


image.png

设置YAML

  除了熟悉的 Markdown 语法,你会发现在文档的最开始多了一部分用--- 括起来的段落。这一部分是用来设置文档输出格式的属性的,语法类型为 YAML,类似于json格式。最常用的参数包括 title 即文档标题、author 即作者、date 即日期。output则表示输出格式,常见格式的如下:

html_document 输出html格式
pdf_document 输出PDF格式
word_document 输出word格式

  每种格式又有很多参数,详细参数见html_document,这里列举html_document的一些参数介绍。

---
title: "Habits"
output: 
  html_document:
    toc: ture                  #是否展示目录
    toc_float: true             #目录的形式,是否浮动
    number_sections: true       #各个标题的数字标记是否展示
    df_print: paged           #表格的形式,paged创建可分页的表
    theme: cerulean              #文档主题,来源于Bootswatch(https://bootswatch.com/)
    highlight: tango               #指定语法高亮样式
    #css: css/styles.css       #加入额外的CSS,如果想从自己的css为文档提供所有样式,theme和highlight可设置为null
    #fig_width: 7                  #图片宽度
    #fig_height: 6                 #图片高度
    #fig_caption: TRUE       #图片设置,控制图形是否带有标题
    #code_folding: hide        #是否隐藏代码块
    #self_contained: false    #在外部文件中保留依赖关系
    #keep_md: true              #是否在knitr处理,pandoc渲染之后保存一份markdown文件的副本
    #template: quarterly_report.html   #可以使用模板选项替换基础pandoc模板
---

  除了上述的参数外,其实还有一个蛮有用的includes参数可添加在html_document下面,主要用于在输出文档中添加额外的内容(在文档标题中或文档正文之前/之后包含内容)。

---
title: "Habits"
output:
  html_document:
    includes:
      in_header: header.html
      before_body: doc_prefix.html
      after_body: doc_suffix.html
---

  以上所有参数,都是在 YAML 部分完成的,而没有涉及文档主体的 Markdown 部分。当进入 Markdown 写作部分时,可以只专心于文字,不必担心将格式和内容搅在一起。

编辑 Rmd 文档主体

  设置好YAML后,接下来按照markdown基本语法编写内容就行,这里需要注意的是,添加的是代码方法与markdown有略微差异。

(```){r example label, echo = FALSE, warning = FALSE}
  coding
(```)

注意:这里的代码即为使用R语言的代码,设置了代码块的名称为 example label,使代码块不包括在文档中,同时不输出警告信息。为了防止转译添加的小括号,正式代码中没有

  对于表格,尤其是读入外部数据时,可以用表格生成器:knitr包的kable()函数,除了用kable()函数外,有个kableExtra包(国人朱昊写的)的kable_styling()函数,配合kable()可以让表格排版更加美观点。此外还有益辉大神写的DT包对于动态展示表格非常好用。

文件导出

  从Rmd格式可以导出为三种格式(HTML、PDF、WORD),用Pandoc实现。其中PDF需要LaTex支持,并且对中文的支持需要额外的设定。

  在RStudio中直接点击knit,选择输出格式输出,或者用rmarkdown的render函数输出。
knitr包将RStudio的Rmd格式文件编译为markdown格式,然后pandoc再将markdown文件直接渲染成HTML。

rmarkdown::render('report.Rmd', 'html_document')

参考文章

R Markdown学习
能跑代码的 Markdown 编辑器——Rmarkdown
Markdown基本语法

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