用于动态报告生成的R2HTML或knitr?

时间:2012-10-26 11:41:21

标签: r knitr

我想编写一个处理某些数据的R函数,然后自动输出一个html报告。该报告应包含一些固定文本,一些文本根据基础数据和一些数字而变化。

最好的方法是什么? R2HTML还是knitr? 一个优于另一个有什么优势?

据我所知,R2HTML允许我按顺序构建html文件,而knitr已经在预定义的.Rhtml文件上运行。 因此,要么使用R2HTML,要么使用knitr进行缝合和旋转,以便生成实时报告。

我将不胜感激任何建议或提示。

4 个答案:

答案 0 :(得分:5)

我抓住这个好机会来推广pander:)


这个包是出于类似的原因编写的,比如@ Yihui的伟大knitr,虽然我想让用户真正专注于文本和R代码而不处理块选项等。所以让我们用户可以使用一些预定义的选项自动生成漂亮的HTMLpdf甚至docxodt输出

这些options会影响到cache engine(处理依赖关系没有任何块选项)或默认plot options(让它为“基础”R graphicslatticeggplot2),这样你就不必在你的每个图中设置调色板或次要网格,只需一次 - 或者使用包默认值:)

该软件包捕获所有运行R表达式的结果(除了错误/警告和其他消息输出),并且可以自动转换为Pandoc's markdown。有一些辅助函数可以让您自动将brew-like syntax中编写的结果文档转换为例如reference class。如果您安装了pandoc,则可以使用HTML,或者在使用brew file的实时R会话中将R对象导出为markdown / HTML /任何其他支持的格式。

简短演示:

  • HTML output
  • Pandoc.brew('file_name.brew', output = 'foo.html', convert = 'html')
  • {{3}}

答案 1 :(得分:4)

每次都是针织者。处理图形,让您用markdown编写报告,而不必在任何地方编写html(如果需要),缓存内容,为您制作咖啡等。

答案 2 :(得分:2)

只要你有一个像Emacs / ESS或RStudio这样的文本编辑器,你也可以按顺序构建一个HTML文件。R2HTML在广泛支持许多R对象方面非常出色(参见{{ 1}}),但由于其根methods(HTML),我可能会对RweaveHTML()感到皱眉。

那就是说,我认为将Sweave()R2HTML结合起来可能是一个好主意,例如

knitr

我在上面的示例中使用了R Markdown语法。关键是# A LOESS Example ```{r loess-demo, results='asis'} cars.lo <- loess(dist ~ speed, cars) library(R2HTML) HTML(cars.lo, file = '') ``` ,这意味着将原始HTML代码写入输出。

答案 3 :(得分:0)

我相信您也可以使用Sweave创建HTML文件,但我听说knitr更容易使用。