3

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

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

据我了解,R2HTML 允许我按顺序构建 html 文件,而 knitr 已经在预定义的 .Rhtml 文件上运行。因此,要么使用 R2HTML,要么使用 knitr 的缝合和旋转来生成动态报告。

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

4

4 回答 4

5

我抓住了这个很好的机会来宣传一下pander :)


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

这些选项影响例如缓存引擎(处理没有任何块选项的依赖项)或默认绘图选项(让它成为“基础” R或) graphics,因此您不必在每个中设置调色板或次要网格你的地块,只有一次 - 或者使用包默认值:)latticeggplot2

该包捕获所有运行 R 表达式的结果(除了错误/警告和其他消息输出),并且可以自动转换为Pandoc 的降价。有一些辅助函数可以让您将生成的文档自动转换为类似 brew 的语法(如果您已pandoc安装),或者将 R 对象导出为 markdown/HTML/任何其他支持的格式在实时 R 会话中使用参考类.

简短演示:

于 2012-10-26T21:13:12.120 回答
4

knitr,每次。处理图形,让您使用 markdown 编写报告,而不必在任何地方(如果需要)编写 html,缓存内容,为您煮咖啡等。

于 2012-10-26T13:50:22.590 回答
2

只要您有像 Emacs/ESS 或 RStudio 等体面的文本编辑器,您也可以按顺序构建 HTML 文件R2HTML。它对许多 R 对象的广泛支持非常出色(请参阅methods(HTML)参考资料),但我可能会RweaveHTML()皱眉到它的根Sweave()

也就是说,我认为将 and 结合起来可能是个好主意R2HTMLknitr例如

# 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 代码写入输出。

于 2012-10-26T15:59:53.770 回答
0

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

于 2012-10-26T15:39:33.033 回答