Rmd语法
文本输出
代码高亮(highlight=TRUE),增强可读性,有无数的高亮主题可选,仅适用于LaTeX和HTML输出,MD文档在转为HTML文档之后可以用专门的JavaScript库去高亮代码
代码重排(tidy=TRUE),对那些不注意代码格式的人来说很有用,再乱的代码,到了这里也会变得相对整齐,本功能由formatR包支持
执行或不执行代码(eval=TRUE/FALSE),不执行的代码段将被跳过,原样输出源代码
显示/隐藏源代码(echo=TRUE/FALSE),甚至精确控制显示哪几段代码(echo取数值)
显示/隐藏普通文本输出或将文本输出以原样形式输出(results='markup', 'hide', 'asis')
显示/隐藏警告文本(warning=TRUE/FALSE)、错误消息(error)和普通消息(message)
显示/隐藏整个代码段的输出(include=TRUE/FALSE),比如我们可能想运行代码,但不把结果写入输出中
child选项 加选项child='文件名.Rmd'可以调入另一个.Rmd文件的内容。 如果有多个.Rmd文件依赖于相同的代码,可以用这样的方法。
collapse选项 一个代码块的代码、输出通常被分解为多个原样文本块中, 如果一个代码块希望所有的代码、输出都写到同一个原样文本块中, 加选项collapse=TRUE。
results选项 用选项results=选择文本型结果的类型。 取值有:
markup, 这是缺省选项, 会把文本型结果变成HTML的原样文本格式。
hide, 运行了代码后不显示运行结果。
hold, 一个代码块所有的代码都显示完, 才显示所有的结果。
asis, 文本型输出直接进入到HTML文件中, 这需要R代码直接生成HTML标签, knitr包的kable()函数可以把数据框转换为HTML代码的表格。
输出表格
knitr包提供了一个 kable() 函数可以用来把数据框或矩阵转化成有格式的表格, 支持HTML、docx、LaTeX等格式。 因为kable()的结果已经是HTML格式的, 为了将其结果直接插入到HTML内容中, 需要使用代码段选项results='asis'。如:
x <- 1:10; y <- x^2; lmr <- lm(y ~ x)
co <- summary(lmr)$coefficients
print(co)
print(knitr::kable(co))
扩展包xtable提供了一个xtable()函数, 也可以用来生成HTML格式和LaTeX格式的表格, 但是需要指定要输出的格式。 xtable对比较多的R数据类型和输出类型提供了表格式显示功能, 包括矩阵、数据框、回归分析结果、方差分析结果、主成分分析结果、 若干分析结果的summary结果等。 例如,上面的回归结果用xtable()函数显示如:
print(xtable::xtable(lmr), type='html')
意这里指定了输出为HTML类型。 如果将本文件转化为docx, xtable的结果不可用。
图形控制
fig.path用来设置图形输出的路径,对大型报告来说,我们可能希望把各种乱七八糟的文件归类管理,所以R图形文件可以用这个选项写入单独的文件夹
dev设置用哪种图形设备记录图形,自带二十多种常见的图形设备,如PDF、PNG甚至tikz,具体取值参见网站上的文档
fig.width和fig.width设置图形文件本身的宽高尺寸(单位英寸)
out.width和out.height设置图片在输出文档中的宽高,这是相对Sweave来说的新选项,也是我等了很久没等到,最终刺激我自己写包的原因之一(这两个选项太容易实现了),很多用户看到这两个选项都很欣喜,一个小问题,困扰多少英雄好汉
fig.keep设置保留图形的方式,我们可以完全不保留,也可以只保留高层作图函数生成的图形,也可以保留低层作图函数产生的图形
fig.show设置图形显示的方式,可以跟在作图代码后面即刻显示出来,也可以等到代码段运行完毕之后再把该段中所有图形一气儿显示出来,也可以把所有图形显示为动画
参考文献
http://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/rmarkdown.html
https://github.com/yihui/r-ninja/blob/master/11-auto-report.Rmd
评论
发表评论