R实现自动化 - knitr 、 rmarkdown
自动化
|
|
在Tools-Golbal options-Sweave-weave Rnw files using -选择knitr
新建一个Rmd的文件,或者在File-new file-R markdown,新建一个Rmd的文件
现在knitr可以支持多种语言引擎,目前知道的有
r
,bash
,pl
,python
等。
用knitr动态生成内容
使用一个含有特殊标记的代码块,knitr会运行其中的代码,并抓取该代码的输入,最后把代码的输出作为文档的一部分
|
|
|
|
r
告诉knitr使用R语言引擎来执行程序,echo=FALSE
是knitr能够识别的一个参数,这个意思是,这段代码本身不会出现在最后的文档中。
后面的参数可以控制代码的执行以及输出的格式等,常见的参数有:(多个参数用,
分开)
- eval 是否求值当前代码块
- echo 是否显示源代码
- results ‘markup’ ,‘asis’
- tidy 是否美化R代码
- fig.width fig.height out.width out.height 设备和输出图片的大小
- fig.path 输出图片的前缀,如’./rfigures/p123-‘,将生成’./rfigures/p123-…png’
- include 是否在结果中包含当前块的结果
- collapse 输出和代码之间是否分开,缺省为“FALSE“,即分开
- comment 输出前的注释符,缺省为’##’
除了在代码块上指定参数以外,也可以使用ops_chunk$set(tidy=FALSE)
来设置这些参数。如果设定这些参数以后,会在当前文件中一直有效。所以,如果为了使代码块更简单,可以使用这个函数来设置一些参数
另外,knitr中除了每个代码块的参数外,还有包级别的参数,可以使用opts_knit$set(progress=TRUE,verbose=TRUE)
这样的方式来设置。常见的包级别参数有:
- verbose 是否输出更多信息
所有的knitr参数,可以参考这里: http://yihui.name/knitr/options/#package_options
用knitr插入动态表格
在knitr中生成表格,可以使用knitr::kable
。
|
|
|
|
后面的table.attr用来指定表格的css,这样html中生成的每个表格会居中显示。这样,我就可以在我的rmd文件中这样使用它了:
|
|
|
|
aa=c(6223,6220,6210,6205,6213)
bb=letters[1:5]
link=paste0(“http://www.bagualu.net/wordpress/archives/",aa)
rlink=rwp::link(link,bb)
dd=data.frame(link=rlink,index=1:5)
rwp::blogtable(dd,none_escape_column=1,caption=”几篇博文”)
```
生成的图片在rfigures/p5304-unnamed-chunk-2-1.png
(相对当前的工作目录)
然后的html中,图的链接为:<img src="rfigures/p5304-unnamed-chunk-2-1.png" title="" alt="" width="672" />
为了让这个图能够在最终的页面中显示出来,你需要把这个图拷贝到适当的地方。