全文1.5w字,预计阅读时间40min,建议结合b站视频一起学习

本文框架

第一章:Rmarkdown 简介

Rmarkdown 是 R 语言环境中提供的 markdown 编辑工具,运用 rmarkdown 撰写文章,既可以像一般的 markdown 编辑器一样编辑文本,也可以在 rmarkdown 中插入代码块,并将代码运行结果输出在 markdown 里。R Markdown 格式,简称为 Rmd 格式, 相应的源文件扩展名为.Rmd。输出格式可以是 HTML、docx、pdf、beamer 等。

前面介绍参考:李东风老师的《R 语言教程》[1]

对于专注于用 R 语言写报告的数据分析师来说,rmarkdown 既提高了数据分析工作的便捷性,也提高了数据分析报告的复用性。markdown 的教程以及对应的编辑器介绍可见:R沟通|markdown编辑器—Typora(可跳转) 这一期主要介绍 Rmarkdown。

1.1官网视频介绍

先通过官方视频[2]来看看 Rmarkdown 的介绍。

:该视频来自官网,一般不一定打得开,所以小编为大家着想就下载下来了,以便大家更好地学习。

视频已经非常清楚的介绍了Rmarkdown如何使用,内部构造、不同的输出类型,以及其他拓展(发布,与github相连)等。我们先对此进行简单了解即可,之后几期我会详细介绍。当然,官网也有一套 Rmarkdown 的入门教程,欢迎大家前去学习,官网截图如下:

其他参考资料可见这一期推文:R分享|Rmarkdown参考资料分享和自制视频教程预告(可跳转)。knitr 的详细文档参见网站knitr 文档[3]。关于 R Markdown 可参考专著(Xie, Allaire, and Grolemund 2019[4])和(Xie, Dervieux, and Riederer 2020[5])。

RStudio 网站提供了一个 R Markdown 使用cheatsheet下载,可以在公众号后台回复cheatsheet,获得包括rmarkdown在内的小抄。Pandoc 的文档见pandoc 网站[6]

这一期内容不多,主要介绍下 Rmarkdown 的基本概念,给出一些参考资料,下一期正式进入 Rmarkdown 的手把手学习。

第二章:Rmarkdown流程演示

2.1. 安装

假设你已经安装了R[7](R Core Team 2020)和RStudio IDE[8]

不需要RStudio,但建议使用RStudio,因为它可使普通用户更轻松地使用R Markdown。如果未安装RStudio IDE,则必须安装Pandoc(http://pandoc.org),否则不需要单独安装Pandoc,因为RStudio已将其捆绑在一起。

接下来,Rstudio中安装rmarkdown软件包,可以通过下面任意一种方式:

# Install from CRAN
install.packages('rmarkdown')  # Or if you want to test the development version,
# install from GitHub
if (!requireNamespace("devtools"))  install.packages('devtools')
devtools::install_github('rstudio/rmarkdown')

如果要生成PDF输出,则需要安装LaTeX。对于从未安装过LaTeX的R Markdown用户,建议安装TinyTeX[9]

install.packages('tinytex')
tinytex::install_tinytex()  # install TinyTeX

TinyTeX是一种轻便,可移植,跨平台,易于维护的LaTeX发行版。R配套软件包tinytex可以帮助你在将LaTeX或R Markdown文档编译为PDF时自动安装缺少的LaTeX软件包,并确保将LaTeX文档编译正确的次数以解决所有交叉引用。

注: 如果TinyTex通过上面代码无法正常安装,可以参考张敬信老师的知乎文章:搭建Latex环境:TinyTex+RStudio https://zhuanlan.zhihu.com/p/328585804如果编译.rmd格式时出现缺失某些Latex包,可以参考这节内容https://bookdown.org/yihui/rmarkdown-cookbook/install-latex-pkgs.html

2.2. 新建Rmarkdown项目

  1. 点击Rstudio左上角的新建项目,选择Rmarkdown文件格式,即可建立一个rmarkdown编辑文件 。

新建流程
  1. 在弹出的选项框里,可以申明rmarkdown的Title、Author以及默认的输出文件格式,一般可以选择HTML、PDF、Word格式,具体见下图。

  1. 在新建的markdown文件里,主要包含三块内容:1).YAML、2).markdown文本、3).代码块。

rmd主要包含

1)YAML:是Rmarkdown的头部文件(上图1位置),YAML定义了rmarkdwon的性质,比如title、author、date、指定output文件类型等。

2)markdown文本:是rmarkdown里的主要内容(上图3位置),由编辑人员按照markdown语法自行编写文本内容。

3)代码块:rmarkdown的一个主要功能是可以执行文件内的代码块(上图2位置),并将代码执行结果展示在markdown里。这对撰写数据分析报告带来了极大的便利。Rmd文件中除了R代码段以外, 还可以插入Rcpp、Python、Julia、SQL等许多编程语言的代码段, 常用编程语言还可以与R代码段进行信息交换。

这三个部分会在以后做详细介绍。

2.3. Rmarkdown的导出

rmarkdown的导出方法有两种,一种是依靠Rstudio手动导出,另一种是基于命令行的导出方式。

手动导出

手动导出

手动导出方法很简单,在完成mardown编辑后,手动点击上图红圈内knit按钮,选择导出格式类型即可,Rstudio支持导出PDF、html、word三种类型。

命令行导出

命令行导出主要依靠rmarkdown::render实现,render函数主要包含如下几个参数:

  • input:指定需要导出的rmarkdwon文件地址

  • output_format:指定需要导出的文件类型,同样支持pdf、word、html等多种文件格式。若未指定output_format格式,则输出rmarkdown文件中output指定的格式类型。

rmarkdown::render("test.Rmd")

2.4. Rstudio界面介绍

这时Rstudio的界面发生了一些变化,我们对界面做一些介绍,尤其是最新版本的新功能,视频介绍已在b站更新(公众号不能倍速)。

演示的Rstudio版本为4.0.3

第三章:图、表和代码输出

3.1代码输出

1.行内代码

`r sin(pi/2)`

有趣的案例:

1)自动更新日期

date: "`r Sys.Date()`"
date: "`r format(Sys.time(), '%d %B, %Y')`"
date: "Last compiled on `r format(Sys.time(), '%d %B, %Y')`"

具体细节可参考:https://bookdown.org/yihui/rmarkdown-cookbook/update-date.html

2)文本结合代码

这里一共有`r sum(x)`个人。

2. 代码块

R代码块一般通过{R}来插入,插入代码段的快捷键:win[Ctrl+Alt+I] / mac[option + cmd + I]。其他快捷键介绍可看这篇推文:Rstudio常用快捷键以及窗口操作有用技巧。

默认情况下代码和结果会在输出文件中呈现。如果通过参数来控制代码块运行结果的输出情况可以在{r }中设置。一般包括代码及运行结果的输出、图片表格格式定义等。关于代码段选项,详见https://yihui.name/knitr/options。

这里小编给出一些常用的选项,文字版本较难理解的话,请配合我的b站视频教程。

  • eval和include选项

    加选项eval=FALSE, 可以使得代码仅显示而不实际运行。这样的代码段如果有标签, 可以在后续代码段中被引用。

    加选项include=FALSE, 则本代码段仅运行, 但是代码和结果都不写入到生成的文档中。

  • echo选项:控制了markdown是否显示代码块。若echo=TRUE,则表示代码块显示在markdown文档显示代码块;反之,代码块不出现在输出结果中。

```{r echo=FALSE}
print(1:5)
```

结果为:

## [1] 1 2 3 4 5
  • collapse选项一个代码块的代码、输出通常被分解为多个原样文本块中, 如果一个代码块希望所有的代码、输出都写到同一个原样文本块中, 加选项collapse=TRUE。例如:

```{r collapse=TRUE}
sin(pi/2)
cos(pi/2)
```

结果为:

sin(pi/2)
## [1] 1
cos(pi/2)
## [1] 6.123032e-17

代码和结果都在一个原样文本块中。

  • prompt和comment选项

    prompt=TRUE 代码用R的大于号提示符开始。如果希望结果不用井号保护, 使用选项comment=''

    ```{r prompt=TRUE, comment=''}
    sum(1:5)
    ```
    

结果为:

> sum(1:5)
[1] 15
  • results选项

用选项results=选择文本型结果的类型。取值有:

  • markup, 这是缺省选项, 会把文本型结果变成HTML的原样文本格式。

  • hide, 运行了代码后不显示运行结果。

  • hold, 一个代码块所有的代码都显示完, 才显示所有的结果。

  • asis, 文本型输出直接进入到HTML文件中, 这需要R代码直接生成HTML标签, knitr包的kable()函数可以把数据框转换为HTML代码的表格。

例如:results='hold'的示例:

```{r collapse=TRUE, results='hold'}
sin(pi/2)
cos(pi/2)
```

结果为:

sin(pi/2)
cos(pi/2)
## [1] 1
## [1] 6.123032e-17
  • 错误信息选项

选项warning=FALSE使得代码段的警告信息不进入编译结果, 而是在控制台(console)中显示。有一些扩展包的载入警告可以用这种办法屏蔽。

选项error=FALSE可以使得错误信息不进入编译结果, 而是出错停止并将错误信息在控制台中显示。

选项message=FALSE可以使得message级别的信息不进入编译结果, 而是在控制台中显示。

当然还有关于图片的设置,这个我们放到下面来说

当然你也可以通过Rstudio界面进行部分参数的设置(更加便捷):

具体演示可见[b站]视频。

  • 全局设置

若markdown内的代码块存在一样的参数设置,则可以提前设计好全局的代码块参数。全局代码块通过`knitr::opts_chunk$set函数进行设置,一般设置在YAML文件下方,具体见下图。

3.2.图片输出

1.插入R代码生成的图形

```{r, fig.height = 8,fig.with = 6}
plot(1:10)
```
  1. fig.show :设置了图片输出方式

  • fig.show=‘asis’:表示plot在产生他们的代码后面

  • fig.show=‘hold’:所有代码产生的图片都放在一个完整的代码块之后

  • fig.show=‘animate’:表示将所有生成的图片合成一个动画图片

    可以参考:https://bookdown.org/yihui/rmarkdown-cookbook/animation.html

  • fig.show=‘hide’:表示产生所有图片,但是并不展示

```{r, fig.show='animate'}
for (i in 1:2) {pie(c(i %% 2, 6), col = c('red', 'yellow'), labels = NA)
}
  1. fig.width:设置图片输出的宽度

  2. fig.height:设置图片输出的高度

  3. fig.align 设置图片位置排版格式,默认为left,可以为right或者center

  4. fig.cap :设置图片的标题

  5. fig.subcap:设置图片的副标题

  6. out.width和out.height选项指定在输出中实际显示的宽和高,如果使用如"90%"这样的百分数单位则可以自动适应输出的大小。

2.插入外部图形文件

如果一个图不是由一个R代码块生成的,你可以用两种方式包含它:

  • 方法一

使用Markdown语法![caption](path/to/image),你可以使用widthheight属性来设置图像的大小,例如:

![图的标题](xxx.png){width=50%}

注意:图片文件放的位置(如果和rmd同一目录,则可以直接xxx.png;如果在其他位置记得加上相对路径)。

  • 方式二

在source editor情况下,直接外部拉入图形即可,会自动保存在相对文件夹的images文简介中,或者点击图形按钮导入。

  • 方式三

在代码块中使用knitr函数knitr::include_graphics()。图片尺寸更改与插入R代码生成的图形的情况相同。

```{r, echo=FALSE , out.width="50%"}
knitr::include_graphics("xxx.png")
```

3.3.表格输出

1. 外部表格输入

  • markdown格式

  • Typora格式

2. 内部代码输出的表格

例子:计算线性回归后, summary()函数的输出中有coefficients一项,是一个矩阵, 如果直接文本显示比较难看:

x <- 1:10; y <- x^2; lmr <- lm(y ~ x)
co <- summary(lmr)$coefficients
print(co)
  • knitr包的 kable()

knitr包提供了一个 kable() 函数可以用来把数据框或矩阵转化成有格式的表格, 支持HTML、docx、LaTeX等格式。

可以用knitr包的kable函数来显示:

knitr::kable(co)

kable()函数的digits=选项可以控制小数点后数字位数, caption=选项可以指定表的标题内容。

  • pander包的pander函数

pander()函数可以将多种R输出格式转换成knitr需要的表格形式。如

pander::pander(lmr)

但是,经过试验发现, 表中中有中文时pander包会出错。这里参考公众号[R友舍]

其他包:tables (Murdoch 2020[10]), pander (Daróczi and Tsegelskyi 2018[11]), tangram (Garbett 2020[12]), ztable (Moon 2020[13]), and condformat (Oller Moreno 2020[14]).等

3.4.表格渲染

通过前面可以看到:用knitr::kable()输出表格结果其实不是非常美观,并且很多功能都不能实现。这时我们可以用kableExtra(Zhu 2020[15])、huxtable (Hugh-Jones 2020[16])等扩展包来美化表格。

其他拓展包可以参考:https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html

  • kableExtra包

本文以kableExtra包为例,介绍rmarkdown中渲染表格的相关函数。它在https://haozhu233.github.io/kableExtra/上有大量文档,其中提供了许多示例,说明如何针对HTML或LaTeX输出自定义kable()输出。建议阅读其文档,本节中仅介绍一些示例介绍。

kableExtra包可以使用管道符号%>%操作,例如

library(knitr)
library(kableExtra)
kable(iris) %>%kable_styling(latex_options = "striped")

安装

# install from CRAN
install.packages("kableExtra")# install the development version
remotes::install_github("haozhu233/kableExtra")

1. 表格外框设置

bootstrap_options = "bordered"构建有边框的表格,其他可调节的名称可通过帮助文档获取。

x_html <- knitr:: kable(head(rock), "html")
kableExtra::kable_styling(x_html,bootstrap_options = "bordered")

2. 设置表格的宽度

使用full_width = F使得表格横向不会填满整个页面。默认情况下full_width = T

x_html <- knitr:: kable(head(rock), "html")
kableExtra::kable_styling(x_html,bootstrap_options = "striped",full_width = F)

注意:上面例子knitr:: kable制定了kable函数来自knitr包,目的是方式和其他包内同名函数冲突。

另一种写法,如果想使用管道函数,需要加载kableExtra。其他代码也类似,大家要学会举一反三噢!

library(knitr)
library(kableExtra)
kable(head(rock), "html") %>% kable_styling(x_html,bootstrap_options = "striped",full_width = F)

3. 设置表格的对齐方式

使用position = "left"使得整个表格像左对齐,当然也可以中心对齐和右对齐,视情况而定。

x_html <- knitr:: kable(head(rock), "html")
kableExtra::kable_styling(x_html,bootstrap_options = "striped",full_width = F,position = "left")

4. 设置表格的字体大小

使用font_size = 20可以将字体大小改为20。

x_html <- knitr:: kable(head(rock), "html")
kableExtra::kable_styling(x_html,bootstrap_options = "striped",full_width = T,font_size = 20

5.设置表格的行与列

这里使用的函数是column_spec(),其中以下代码含义为:制定前两列数据,字体加粗、颜色为白色,表格填充为"#D7261E"。而行的设置与列类似,使用函数名为row_spec()。

x_html <- knitr:: kable(head(rock), "html")
x_html <- kableExtra::kable_styling(x_html,bootstrap_options = "striped",full_width = T)
kableExtra::column_spec(x_html,1:2,bold = T,color = "white",background = "#D7261E")

x_html <- knitr:: kable(head(rock), "html")
x_html <- kableExtra::kable_styling(x_html,bootstrap_options = "striped",full_width = T)
kableExtra::row_spec(x_html,1:2,bold = T,color = "white",background = "#D7261E")

6.其它表格渲染

这里给出一个有趣的例子,具体内部不做过多解释,b站视频给出解释。文字真的很难说明哈哈。

library(kableExtra)
data =  plyr::mutate(rock[1:10, ],perm = cell_spec(perm,"html",color = "white",bold = T,background = spec_color(1:10,end = 0.9,option = "A",direction = -1)),shape = ifelse(shape > 0.15,cell_spec(shape,"html",color = "white",background = "#D7261E",bold = T),cell_spec(shape, "html",color = "green",bold = T)))
x_html <-knitr::kable(data,"html", escape = F, align = "c")
x_html <-row_spec(x_html,0, color = "white", background = "#696969" )
kable_styling(x_html,"striped")

第四章:Rmarkdown的主题格式

Rmarkdowm作为可复用报告的优秀工具,除了提供文档编辑、图表输出外,还有许多主题格式供使用者选择。除了默认的主题外,还可以通过加载rticles、prettydoc、rmdformats、tufte等包获取更多主题格式。下面我们看看几类扩展包里的主题样式。

注: 接下来的教程我是已经安装这些包了,没安装的记得提前安装好!不然运行会出错。

4.1.rticles包

官网:https://github.com/rstudio/rticles;

具体教程:https://bookdown.org/yihui/rmarkdown/rticles-templates.html

rticles软件包提供了各种期刊和出版商的模板:

  • JSS articles (Journal of Statistical Software)

  • R Journal articles

  • CTeX documents(中文pdf,强烈推荐!)

  • ACM articles (Association of Computing Machinery)

  • ACS articles (American Chemical Society)

  • AMS articles (American Meteorological Society)

  • PeerJ articles

  • Elsevier journal submissions

  • AEA journal submissions (American Meteorological Society)

  • IEEE Transaction journal submissions

  • Statistics in Medicine journal submissions

  • Royal Society Open Science journal submissions

  • Bulletin de l’AMQ journal submissions

  • MDPI journal submissions

  • Springer journal submissions

在此只对下面一个模板进行演示,其他模板操作类似,但是一般模板是不能包含中文字体的哦!

  • CTeX Documents(中文版本)

下载完对应的包之后,找到对应模板打开即可。输出pdf是需要配置tex环境的哦!建议安装Tinytex,具体安装教程见前面。

编译后得到的结果,这是他模板原始的样子,如果想调整页面行间距,字体颜色等,请见下次推文(公众号:庄闪闪的R语言手册),我将会把这些小细节进行汇总。

4.2.rmdformats包

之后的这几个包,内部都包含了挺多模板的,下面yaml文件只是其中一个,如果想尝试该包内部其他模板,请根据上述操作进行,选择好模板,编译之后看看是不是你想要的模板。

接下来我对部分相对不错的模板进行展示,你可以直接复制我的头部文件到.rmd格式中,或者打开模板窗口进行选择(操作在下面)。

  • 方法一

---
title: "Rmarkdown入门教程"
author: "庄闪闪的R语言手册"
date: "2/18/2021"
output:rmdformats::readthedown:self_contained: truethumbnails: truelightbox: truegallery: falsehighlight: tango
---

方法二:

在你安装完该包之后你可以使用通过按钮新建该模版(其实他有很多类似的模板,我这里只展现了一种):

以下模板也可以通过这种方式构建,前提是你安装了这个包,这样你就可以在From Template中找到该包对应的模板了。

4.3.prettydoc包

---
title: "Rmarkdown入门教程"
author: "庄闪闪的R语言手册"
date: "2/18/2021"
output:prettydoc::html_pretty:theme: caymanhighlight: github
---

4.4.tufte包

---
title: "Rmarkdown入门教程"
author: "庄闪闪的R语言手册"
date: "2/18/2021"
output:tufte::tufte_html: default
---

4.5.cerulean包

---
title: "Rmarkdown入门教程"
author: "庄闪闪的R语言手册"
date: "2/18/2021"
output:html_document:theme: ceruleanhighlight: tango
---

第五章:总结一些常用技巧

关于RMarkdown使用时,小编日常会使用的一些有用技巧,当然我也是通过学习谢大大的Rmarkdown-cookbook[17]以及日常使用需求上网搜的解决方案,在此分享给大家。如果大家还有其他什么需求,可以在留言板留言。或者有其他实用技巧也欢迎分享!

5.1.修改某些字体颜色????????????

Markdown语法没有用于更改文本颜色的内置方法。我们可以使用HTML和LaTeX语法来更改单词的格式

  • 对于HTML,我们可以将文本包装在标记中,并使用CSS设置颜色,例如<span style =“ color:red;”> text </ span>。

  • 对于PDF,我们可以使用LaTeX命令\textcolor{}{}。这需要使用LaTeX软件包xcolor,该软件包已包含在Pandoc的默认LaTeX模板中。

** 作为更改PDF文本颜色的示例:**

我是\textcolor{blue}{庄闪闪}呀!欢迎关注我的\textcolor{red}{公众号}:\textcolor{blue}{庄闪闪的R语言手册}。

在上面的示例中,第一组花括号包含所需的文本颜色,第二组花括号包含应将此颜色应用到的文本。

5.2.更改全文页边距等 ????????????

在top-level中加入geometry命令,例如

---
title: "RMarkdown常用技巧"
author:- 庄闪闪
documentclass: ctexart
geometry: "left=2cm,right=2cm,top=2cm,bottom=2cm"
output:rticles::ctex:keep_tex: trueincludes:in_header: columns.texfig_caption: yesnumber_ps: yestoc: yes
---

这时的页边距就变成下面这样了:

当然全文字体大小等操作也是这样操作的,在geometry操作即可:

5.3. 缩进文本 ????????

默认情况下,Markdown还将忽略用于缩进的空格。但是,在某些情况下,例如在经文和地址中,我们可能希望保留缩进。在这些情况下,我们可以通过以竖线(|)开头的线来使用线块。换行符和所有前导空格将保留在输出中。例如:

| When dollars appear it's a sign
|   that your code does not quite align
| Ensure that your math
|   in xaringan hath
|   been placed on a single long line

输出为:

5.4.分页

如果想要分页,可以使用\newpage。例如:如果想把目录和正文内容分开,可以在在正文前面加入这个代码

这时输出的结果,目录一个界面,正文另起一页。

5.5.控制文本输出的宽度????????

有时从R代码输出的文本可能太宽。如果输出文档具有固定的页面宽度(例如,PDF文档),则文本输出可能会超过页面的页边距。

R全局选项宽度可用于控制R函数输出的文本宽度,如果默认值太大,则可以尝试使用较小的值。此选项通常表示每行字符的粗略数目。例如:

```{r}
options(width = 300)
matrix(runif(100), ncol = 20)
```

```{r}
options(width = 60)
matrix(runif(100), ncol = 20)
```

但是这种方式不一定对所有函数都适用,这是你可以使用其他方式,对于Html(这里不做解释,主要将pdf),可以参见教程[18]

对于PDF输出,换行比较困难。一种解决方案是使用LaTeX软件包清单,可以通过Pandoc参数--listings启用它。然后,您必须为此软件包设置一个选项,并且可以从外部LaTeX文件中包含设置代码(有关详细信息,请参见第6.1[19]节),例如,

---
output:pdf_document:pandoc_args: --listingsincludes:in_header: preamble.tex
---

在preamble.tex中(建议放到和rmd同一个文件夹),我们设置了Listings包的一个选项:

\lstset{breaklines=true
}

这是输出的结果,但是其实不是很美观

5.6.控制图片输出大小????????????

这个我在文稿和教程中说的挺清楚了。一共有两种方式:

方法一:

```{r, echo=FALSE, out.width="50%", fig.cap="A nice image."}
knitr::include_graphics("foo/bar.png")
```

方法二:

![A nice image.](foo/bar.png){width=50%}

5.7.图片对齐????????????

这个我也说过啦!就是在R chunk中加入fig.align = 'center'进行居中。外部数据你可以不用markdown的形式输入,可以在R代码块使用

knitr::include_graphics()

具体可以见:和我的b站视频。

5.8.代码块的行号????

通过块选项 attr.source =“ .numberLines”将行号添加到源代码块中,或者通过attr.output =“ .numberLines”将文本输出块添加到文本中,例如,

```{r, attr.source='.numberLines'}
if (TRUE) {x = 1:10x + 1
}
```

输出结果为:

5.9.多列输出????????????

这个特别好用!虽然学起来有那么一点困难,具体我再出一期推文,把这个讲清楚。具体可以见这里的教程[20]。类似于排版成这种形式:

5.10.小编有话说

  • 我相信大家还会使用其他宝藏模板吧,也欢迎在评论下方分享!小编能力有限,只能总结和分享这么多了!

  • 当然Rmarkdown还可以做各种拓展,比如presentation(ioslides、Beamer、slidy、PowerPoint),Documents(Html、Notebook、PDF、word)及其其他拓展(Dashboards、Tufte Handouts、xaringan Presentations、Websites)等。有部分我已经整理好了,可以在下面窗口的拓展教程中找到。

参考资料

[1]

《R 语言教程》: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/rmarkdown.html

[2]

官方视频: https://rmarkdown.rstudio.com/lesson-1.html

[3]

knitr 文档: http://yihui.name/knitr/

[4]

Xie, Allaire, and Grolemund: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/rmarkdown.html#ref-Xie2019:rmarkdown

[5]

Xie, Dervieux, and Riederer: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/rmarkdown.html#ref-Xie2020:rmd-cook

[6]

pandoc 网站: https://www.pandoc.org/

[7]

R: https://www.r-project.org

[8]

RStudio IDE: https://www.rstudio.com

[9]

TinyTeX: https://yihui.name/tinytex/

[10]

Murdoch 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-tables

[11]

Daróczi and Tsegelskyi 2018: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-pander

[12]

Garbett 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-tangram

[13]

Moon 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-ztable

[14]

Oller Moreno 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-condformat

[15]

Zhu 2020: https://bookdown.org/yihui/rmarkdown-cookbook/kableextra.html#ref-R-kableExtra

[16]

Hugh-Jones 2020: https://bookdown.org/yihui/rmarkdown-cookbook/table-other.html#ref-R-huxtable

[17]

Rmarkdown-cookbook: https://bookdown.org/yihui/rmarkdown-cookbook/

[18]

教程: https://bookdown.org/yihui/rmarkdown-cookbook/text-width.html

[19]

6.1LaTeX软件包清单: https://bookdown.org/yihui/rmarkdown-cookbook/latex-preamble.html#latex-preamble

[20]

多列输出教程: https://bookdown.org/yihui/rmarkdown-cookbook/multi-column.html

注:如果你觉得文字太生涩了,上面说的内容都可以在我的b站视频中学到。 可以保存以下照片,在b站扫该二维码,或者b站搜索【庄闪闪】观看Rmarkdown系列的视频教程。Rmarkdown视频新增两节视频(写轮眼幻灯片制作)需要视频内的文档,可在公众号回复【rmarkdown

文末的相关推荐给出了Rmarkdown的一些拓展教程,包括制作幻灯片,beamer等,喜欢的可以看下。

往期精品(点击图片直达文字对应教程)

机器学习

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

1.5w字的Rmarkdown入门教程汇总相关推荐

  1. FPGA极易入门教程----汇总篇(直达链接)

    为什么要写这个系列? 根据费曼学习法,最好的学习方法就是教会一个外行人(初学者).知识分享,独乐乐不如众乐乐.现在FPGA市场巨大,人才缺口很大.我本着能拉一个上贼船就拉一个上贼船的想法来写这个系列文 ...

  2. 『机器学习』入门教程汇总

    这是我们老师根据现有资源整理的一个机器学习路径.涵盖了Numpy,Scipy,Pandas,Scikit-learn,Matplotlib 等开源工具的学习,并完成从数据清理.数据分析.模型构建,到最 ...

  3. gRPC入门教程汇总

    gRPC是Google开发的高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于Protobuf(Protocol Buffers)序列化协议开发, ...

  4. 2020年整理的python零基础入门教程汇总全集

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. 像Perl语言一样, Pyt ...

  5. 阿里云服务器入门教程汇总,从理论到实践

    这是一篇纯干货分享帖,不谈个人经验,只搬运牛人的技术"经验". ECS是阿里云很重要的一款云服务产品,大多数人的云端之旅也是从ECS开始,以下知识将从浅入深,从图文到视频,再到最佳 ...

  6. 用TypeScript来写React官方入门教程 .tsx后缀文件,同时入门typescript和React

    用TypeScript来写React官方入门教程 .tsx后缀文件,同时入门typescript和React 1. 项目说明: 这是React官网上那个下井字棋的入门教程,但是我把它换了typesci ...

  7. 5W字高质量java并发系列详解教程(上)-附PDF下载

    文章目录 第一章 java.util.concurrent简介 主要的组件 Executor ExecutorService ScheduledExecutorService Future Count ...

  8. 黑马pink老师前端从入门到精通教程汇总(附源码+配套资料)

    本篇内容主要是PINK老师教程汇总(主要内容如下) 1.web端布局:先讲解HTML5常用标签,接着讲解CSS3常见样式增加的H5C3新特性,新语法,最后讲解PC端品优购项目.以及CSS3动画 2d ...

  9. canvas详细入门教程(1W字 吐血分享)

    大家好,我是潘潘 今天为大家带来的是我已经写了很久了的canvas详细教程,对入门canvas很有帮助. 点击跳转原文: canvas详细教程原文 canvas是什么? 简单来说,<canvas ...

最新文章

  1. d3.json php,使用d3.json从PHP进行JSON输出
  2. 算力大战是BCH最坏的一种处理方式
  3. Android Studio新建类头部注释和添加函数注释模板及快捷键
  4. pci驱动与硬件通信
  5. 关于商品分类 商品表和属性表的设计
  6. 20w7珠led驱动电源电路图_LED串联驱动电路图
  7. BZOJ 1012 - 树状数组+维护最大值 / 单调栈+二分 / 暴力(伪单调队列) / 线段树...
  8. 腾讯地图api php经纬度转换地址,腾讯地图经纬度转换为百度地图经纬度PHP类
  9. 智能手机串号IMEI码丢失(无效IMEI)解决恢复办法
  10. 中国协同工作空间管理软件行业市场供需与战略研究报告
  11. 电脑计算机显示向程序发送命令时出现问题,word提示向程序发送命令时出现问题怎么解决 wo...
  12. margin-top传递问题
  13. 方舟win10自建服务器,win10电脑玩方舟生存进化常见问题汇总
  14. 防火墙——双机热备理论讲解
  15. 网易云音乐 2.1.0
  16. Android 自定义View二(深入了解自定义属性attrs.xml)
  17. 一个向上帝买了挂的男人!
  18. 济南有了“盒区房”,帝王蟹、波士顿龙虾最快30分钟送达
  19. 互联网迟到的80后 为什么中国出不了扎克伯格
  20. 华为hcia hcip涉及到的ensp实验下载

热门文章

  1. 作者:胡晓彦(1987-),女,中国科学院国家空间科学中心助理研究员
  2. 【数字逻辑设计】核心知识归纳总结
  3. 【软件架构】软件架构设计常用概念、原则与思想
  4. 超大容量文本的单词统计(洛谷P1308题题解,Java语言描述)
  5. 洛谷P2708题题解(Java语言描述)
  6. 一个使用Logging Application Block的小问题[xgluxv]
  7. 我对if(!this.IsPostBack)的理解
  8. 分享一个关于网站适应性的解决方案
  9. Java编译器优化与运行期优化技术浅析
  10. Vue内容分发slot