knitr:当我在chunk中进行小的更改时保持缓存

时间:2014-05-21 02:17:58

标签: r caching knitr

我可以理解地在更新块时破坏了缓存(但结果应该是相同的,这是整容变化)。但是,我不想再次运行这个块,因为它需要1周才能运行。如何更改缓存以便新代码认为缓存保持不变?

我想我只需要更改缓存文件夹中的文件名。但是我不知道如何在不运行代码的情况下更改它们,因为knitr只在成功完成块后才写入文件。

另一个动机是使用不同的knitr版本时knitr缓存可能无效。这发生在1.5和1.5.33之间,即开发版本。另见:R knitr: is it possible to use cached results across different machines?。我想如果我找到上述解决方案可以帮助解决这个问题。

1 个答案:

答案 0 :(得分:4)

使用knitr缓存来存储为期一周的模拟结果听起来有点 crazy 易受灾难影响。

我对更安全的工作流程的建议是:

  1. 运行模拟并将结果存储在一个文件中(csv,rda,任何合适的文件)。

  2. echo = FALSE报告的开头附近将数据加载到一个块(可能是knitr)。

  3. 现在模拟和报告已经解耦。