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包支持以下功能:
表格实际上也是纯文本构成的(你要是天天抱着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就能生成一个漂亮有用的网站