写在前面
最近学习R语言,在使用集成开发环境R Studio时,经常会用到两类文件,那就是R Markdown文件和R Notebook文件,作为初学者的我一开始并不太理解,虽然了解Markdown的基础语法,但在使用时还是不免困惑,二者的区别和主要用途分别是什么呢?在一段时间的使用之后,我逐渐熟悉了二者的操作,有了一些经验,下面具体说说。
环境:
Windows10
R-x64-4.0.2
R Studio 1.3.959
R Markdown与R Notebook简介
R Markdown
(扩展名.Rmd
)为R Studio下的一种文档格式(Document),其语法与轻量型标记语言Markdown一致,不一样的是在R Studio中除了可以进行Markdown的书写,还可以运行R代码块(chunk),使用起来比较方便,R Markdown在安装插件knitr
后还可以进行PDF、Word、Html格式文件的导出,十分方便。其文件结构主要有以下三个部分,分别是
- YAML渲染参数:设定导出时候的一些参数,如是否添加目录,可以在齿轮图标中进行设置。
- Markdown标记&文本:采用Markdown语法。
- R语言代码块:选择Insert插入代码块,可以设定代码块的标题,以及设置是否显示warning信息等的参数。
分别对应图1中的1,2,3。
R Notebook
(扩展名.Rmd
)类似于Python的Jupyter Notebook,或者MATLAB中的notebook文件(在新版本中已经删去了notebook文件,转而以功能更为强大的实时脚本文件mix文件代替),都是可以交互执行代码块的文件格式,其语法也沿用了Markdown的语法,所以写起来很顺手。美中不足的一点是R Notebook文件只能在IDE中运行代码,生成的Html文件只能作静态的代码展示(不过可以选择是否展开代码块)。
主要区别
R Markdown
在生成PDF(Word, html)文件后会直接显示代码段的运行结果(值或图像),而R Notebook能够在HTML文件中选择是否显示代码运行得到的结果(值或图像)。
这一区别使得R Markdown
对于书面报告或数据分析报告的书面展示有更好的支持,Markdown简洁的语法和严谨的格式又使研究者更加专注于报告的内容而非格式。
而R Notebook
在作成果展示或课堂互动时有更好的体验,教学或展示中可以更好地利用Html文件的优势,可以使用交互式按钮选择是否显示代码块。
基本使用
R Markdown在使用时需要安装一些程序包,下面附上命令:
install.packages("rmarkdown") # 写rmarkdown必需的包
install.packages("knitr") # 导出文件必需的包
install.packages("tinytex") # TeX的轻量级发行版,用于PDF文件的导出
install.packages("rticles") # 配合中文导出PDF,有很多不同的文档模板可供使用
R Markdown
-
文档写作
对于R Markdown来说,由于其继承了markdown编辑器的优点,所以只要掌握基本的Markdown语法就能写出漂亮的文档了,如果需要插入公式的话直接采用dollar符号就可以,并且R Studio下的R Markdown支持数学公式的实时预览,称得上是R界的Typora啊!
题头的YAML参数可以选择手动修改,不过初学者还是建议使用图1中的齿轮图标下拉菜单的最后一行进行修改。
--- title: "Example" author: "Tom" date: "2020/6/10" output: pdf_document: toc: yes latex_engine: xelatex word_document: toc: yes keep_md: yes ---
上面是我的一些设置,
toc
表示是否设置目录。如果需要在PDF中显示中文还要加上:
documentclass: ctexart
关于具体的一些编码配置请看这里。
对于R 代码块,需要配置的参数就很随意了,有兴趣的话可以看看knitr选项。
-
保存&导出
因为导出牵涉到的东西比较多(只导出Word的话很方便,导出PDF还牵扯到一个中文编码的问题),如果你的电脑没安装过
TeXlive
或者其他的LaTeX
套件,直接安装谢益辉大佬开发的Tinytex
就OK,如果有问题点这里;如果安装过,最好全部卸载,鉴于我的老电脑性能问题,我还是导出word吧😢。下面贴上一张导出PDF的图片,很美,可惜我不能写中文上去。
R Notebook
直接使用knitr
导出的Html文件就可以在浏览器中进行展示,不过JS脚本和CSS样式也支持自定义,应该可以通过修改文件得到更丰富的展示效果(学过前端的朋友们可以试试)。
使用技巧
由于R Notebook的语法也是基于R Markdown的,所以在此主要介绍R Markdown的一些使用技巧。
-
设置列表的数据时候,尽量使用
with
而不是attach
。因为在多个程序段运行时,可能会在不同的列表中出现相同的变量名,这样在knitr
逐行运行并生成文件时会导致报错。 -
使用一些R Studio常见的快捷键,会让你书写R Markdown报告事半功倍:
- 注释/取消注释当前行(代码块):
Ctrl+Shift+C
; - 插入代码块:
Ctrl+Alt+I
; - 运行光标所在行的代码:
Ctrl+Enter
; - 运行当前光标所在行的代码块:
Ctrl+Shift+Enter
。
- 注释/取消注释当前行(代码块):
参考
[1] R Markdown 简介