我可以理解地在更新块时破坏了缓存(但结果应该是相同的,这是整容变化)。但是,我不想再次运行这个块,因为它需要1周才能运行。如何更改缓存以便新代码认为缓存保持不变?
我想我只需要更改缓存文件夹中的文件名。但是我不知道如何在不运行代码的情况下更改它们,因为knitr只在成功完成块后才写入文件。
另一个动机是使用不同的knitr版本时knitr缓存可能无效。这发生在1.5和1.5.33之间,即开发版本。另见:R knitr: is it possible to use cached results across different machines?。我想如果我找到上述解决方案可以帮助解决这个问题。
答案 0 :(得分:4)
使用knitr
缓存来存储为期一周的模拟结果听起来有点 crazy 易受灾难影响。
我对更安全的工作流程的建议是:
运行模拟并将结果存储在一个文件中(csv,rda,任何合适的文件)。
在echo = FALSE
报告的开头附近将数据加载到一个块(可能是knitr
)。
现在模拟和报告已经解耦。