我想编写一个处理某些数据的R函数,然后自动输出一个html报告。该报告应包含一些固定文本,一些文本根据基础数据和一些数字而变化。
最好的方法是什么? R2HTML还是knitr? 一个优于另一个有什么优势?
据我所知,R2HTML允许我按顺序构建html文件,而knitr已经在预定义的.Rhtml文件上运行。 因此,要么使用R2HTML,要么使用knitr进行缝合和旋转,以便生成实时报告。
我将不胜感激任何建议或提示。
答案 0 :(得分:5)
我抓住这个好机会来推广pander:)
这个包是出于类似的原因编写的,比如@ Yihui的伟大knitr
,虽然我想让用户真正专注于文本和R代码而不处理块选项等。所以让我们用户可以使用一些预定义的选项自动生成漂亮的HTML
,pdf
甚至docx
或odt
输出 。
这些options会影响到cache engine(处理依赖关系没有任何块选项)或默认plot options(让它为“基础”R graphics
,lattice
或ggplot2
),这样你就不必在你的每个图中设置调色板或次要网格,只需一次 - 或者使用包默认值:)
该软件包捕获所有运行R表达式的结果(除了错误/警告和其他消息和输出),并且可以自动转换为Pandoc's markdown。有一些辅助函数可以让您自动将brew-like syntax中编写的结果文档转换为例如reference class。如果您安装了pandoc
,则可以使用HTML,或者在使用brew file的实时R会话中将R对象导出为markdown / HTML /任何其他支持的格式。
简短演示:
Pandoc.brew('file_name.brew', output = 'foo.html', convert = 'html')
答案 1 :(得分:4)
答案 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更容易使用。