当前位置: 首页 > 工具软件 > knitr > 使用案例 >

knitr包 R语言

韩刚洁
2023-12-01

http://www.jianshu.com/p/7b0910fcf1cf

代码段,就是独立段落的R代码,每段代码必须有唯一的标签
行内代码,嵌入文字的小代码
局部选项,在代码段上方的<<>>=标记里设置
全局选项,用opts_chunk$set()设置,它对所有文档格式都通用(包括Rnw以及后面要介绍的Rhtml、Rmd等)

opts_chunk$set(echo = FALSE, fig.height = 4)
选项让我们可以非常灵活地控制代码的输出,例如如果我们想隐藏R代码,只显示运行结果(你给老板交报告的时候当然不能连R代码也显示,除非老板也是代码控),那么我们可以用echo选项,设置echo=FALSE就可以隐藏R代码;如果我们想让输出图形的宽度为5英寸,则可以设置fig.width=5,等等。

在文本输出方面,knitr包支持以下功能:

  • 代码高亮(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),比如我们可能想运行代码,但不把结果写入输出中

表格

表格实际上也是纯文本构成的(你要是天天抱着Word用当然永远都不能明白这句话!),但R没有自带的表格生成函数,所以我们往往需要特殊处理。视输出格式不同,我们可以使用xtable或ascii包来把R对象(尤其是数据框)转化为相应格式的表格代码,此时需要我们使用原样输出,如:

library(xtable)
xtable(head(mtcars[, 1:5]))

  mpg cyl disp hp drat
Mazda RX4 21.00 6.00 160.00 110.00 3.90
Mazda RX4 Wag 21.00 6.00 160.00 110.00 3.90
Datsun 710 22.80 4.00 108.00 93.00 3.85
Hornet 4 Drive 21.40 6.00 258.00 110.00 3.08

网页应用在这个时代太重要了。我2012年夏天AT&T实验室实习时接触到一位科学家叫Carlos Scheidegger,他说了一句笑话让我深为同意:如果一件东西在网上不存在,那么它就不存在。更简单的翻译是:我网,故我在。网络媒介有太多传统纸质媒介不具备的特征,例如交互式的内容、视频音频、动画、内容可复制等。想象下面的场景:

这里介绍一些相关的资源和演示:

RPubs.com:你可以看到各式各样的基于R Markdown编译出来的网页报告
OpenCPU:它是一个基于R的网络开发平台,例如这里有一个knitr应用,点点鼠标就可以动态生成一篇报告了
CRUNCH:又一个基于R的计算与服务平台,也可以调用knitr生成报告(支持比OpenCPU更好)
RCloud:基于Rserve包和knitr的网络应用,提供了一个可以合作编写报告的平台
Vistat:基于GitHub/Jekyll的在线小刊物,主要演示统计图形以及相应的代码,背后的引擎仍然是knitr,用简单的Markdown就能生成一个漂亮有用的网站


 类似资料: