【问题标题】:R2HTML or knitr for dynamic report generation?用于动态报告生成的 R2HTML 或 knitr?
【发布时间】:2012-10-26 11:41:20
【问题描述】:

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

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

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

如果有任何建议或提示,我将不胜感激。

【问题讨论】:

    标签: r knitr


    【解决方案1】:

    我抓住这个好机会宣传一下pander :)


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

    这些options 影响例如cache engine(处理依赖没有任何块选项)或默认的plot options(让它成为一个“基础”Rgraphicslatticeggplot2),这样你不必在每个绘图中设置调色板或小网格,只需一次 - 或使用包默认值:)

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

    简短演示:

    【讨论】:

    • 我在 5-6 分钟内运行了演示,包括安装 pander 和 Pandoc。非常令人印象深刻!当然,“knitr et al”可以用 html 或 pdf 制作好东西,但事实是我们中的很多人都需要与使用 Word 的人进行交互。我确实会在我的工作场所推广这个软件包。
    • 谢谢@DagHjermann,很高兴听到这么好的反馈:)
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      也就是说,我认为将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代码写入输出。

      【讨论】:

        【解决方案4】:

        我相信你也可以使用 Sweave 创建 HTML 文件,虽然我听说 knitr 更易于使用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多