我想编写一个 R 函数来处理一些数据,然后自动输出一个 html 报告。这份报告应该包含一些固定的文本,一些根据基础数据变化的文本和一些数字。
最好的方法是什么?R2HTML 还是 knitr?一个比另一个有什么优势?
据我了解,R2HTML 允许我按顺序构建 html 文件,而 knitr 已经在预定义的 .Rhtml 文件上运行。因此,要么使用 R2HTML,要么使用 knitr 的缝合和旋转来生成动态报告。
我将不胜感激任何建议或提示。
我抓住了这个很好的机会来宣传一下pander :)
这个包是出于类似@Yihui's great 的原因而编写的knitr
,虽然我想让用户真正专注于文本和R代码而不处理块选项等。所以让用户生成 pretty HTML
,pdf
甚至自动输出一些预定义的选项docx
。odt
这些选项影响例如缓存引擎(处理没有任何块选项的依赖项)或默认绘图选项(让它成为“基础” R或) graphics
,因此您不必在每个中设置调色板或次要网格你的地块,只有一次 - 或者使用包默认值:)lattice
ggplot2
该包捕获所有运行 R 表达式的结果(除了错误/警告和其他消息和输出),并且可以自动转换为Pandoc 的降价。有一些辅助函数可以让您将生成的文档自动转换为类似 brew 的语法(如果您已pandoc
安装),或者将 R 对象导出为 markdown/HTML/任何其他支持的格式在实时 R 会话中使用参考类.
简短演示:
knitr,每次。处理图形,让您使用 markdown 编写报告,而不必在任何地方(如果需要)编写 html,缓存内容,为您煮咖啡等。
只要您有像 Emacs/ESS 或 RStudio 等体面的文本编辑器,您也可以按顺序构建 HTML 文件R2HTML
。它对许多 R 对象的广泛支持非常出色(请参阅methods(HTML)
参考资料),但我可能会RweaveHTML()
皱眉到它的根Sweave()
。
也就是说,我认为将 and 结合起来可能是个好主意R2HTML
,knitr
例如
# A LOESS Example
```{r loess-demo, results='asis'}
cars.lo <- loess(dist ~ speed, cars)
library(R2HTML)
HTML(cars.lo, file = '')
```
我在上面的例子中使用了 R Markdown 语法。关键在于results='asis'
将原始 HTML 代码写入输出。
我相信您也可以使用 Sweave 创建 HTML 文件,尽管我听说 knitr 更易于使用。