【问题标题】:Incorporating knitr into your workflow [closed]将 knitr 纳入您的工作流程 [关闭]
【发布时间】:2015-07-15 19:36:22
【问题描述】:

只是想知道,人们如何将 knitr 整合到他们当前的工作流程中?我有一个很长的、预先存在的 .R 文件,它读取数据、进行分析,并在文件的末尾生成一个 ggplot 图表和一个总结我的发现的表格。我想将这些合并到一个文档中,无论是 markdown 还是 LaTeX。我应该将我的初始 .R 文件重命名为 .Rmd 文件并将 knitr 命令放在末尾吗?我是否应该创建一个新的 .Rmd 文件来创建报告,并以某种方式合并来自 .R 文件的分析?换句话说,将 knitr 输出添加到我现有的工作流程的最佳做法是什么?

【问题讨论】:

  • 您不能简单地重命名文件并期望它在您的代码周围作为markdown/LaTeX shell 工作。查看 knitr 实际功能的示例。 yihui.name/knitr/demos 我通常将脚本的一部分复制/粘贴到作为“knitr 文档”一部分的块中,并将其与 cmets 交错。 (打印的)数字会自动添加到输出中。
  • 谢谢,让我更明确一点。我希望尽可能自动化,以尽量减少手动从一个文件剪切和粘贴到另一个文件。部分分析是读取大文件、操作它们等。我是否必须在 .Rmd 文件中重新执行此操作?有没有办法从 .R 文件中传递最终表格和数字?
  • 你可以使用spin()
  • 感谢 spin() 提示。事实上,它看起来像是预先存在的 .R 文件和快速报告之间的最短距离。

标签: r markdown knitr


【解决方案1】:

您应该使用外部资源来将您的脚本作为您的代码存储库和您的 knitr 文档来调用它。您将从这种方法中受益。

例如,在长 .R 脚本中标记现有代码,如下所示:

## @knitr Q5

all your data prep code

plotQ5 <- ggplot(your plot code

plotQ5

然后在你的 knitr 文档中,以 .Rnw 为后缀,有类似这样的代码块

<<Q05, results='hide', echo = FALSE, include=FALSE>>=
@

<<Q05plot, fig.width=width, fig.height=height, fig.align="center", warning = FALSE, echo=FALSE>>=
plotQ05
@

现在,当您为 Latex 编译 PDF 时,knitr 将从脚本中获取您的代码和绘图,并输出包含绘图的 PDF 文件。

另外,学习在knitr中缓存大对象,这样如果它们没有改变就不需要再次读取它们。

【讨论】:

  • 谢谢!这看起来很有帮助。让我仔细看看。
  • 好的,接受你的回答。感谢您向我指出这一点。
  • 非常感谢。如果您有其他关于 knitr 的问题,我很乐意离线或聊天,因为我正在学习 knitr/Latex,并欢迎其他人分享经验。
  • 我可能会接受你。我对 LaTeX 有很长的经验,但我是 R/Markdown/knitr 世界的新手,需要尽快开始。
  • 我的荣幸。什么是最好的连接方式?用电话?我在美国新泽西州普林斯顿。
猜你喜欢
  • 2011-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 1970-01-01
  • 2019-06-16
相关资源
最近更新 更多