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.字体
**加粗**
*斜体*
***加粗斜体***
~~删除线~~
我是微软雅黑
黑体
### 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为文件名开头被保存在主目录中)。如果在某个特定代码块中需要不一样的设置,可以单独设置该代码块。