【发布时间】:2020-09-08 21:10:00
【问题描述】:
我有一个 R Markdown 文档。本文档中的一些 R 代码块包含对函数 myFun() 的调用。此功能总是需要很长时间才能运行。因此,我想自动将任何包含myFun() 的块设置为具有cache = TRUE。我无法修改myFun(),并且包含它的块没有特殊的识别功能。 (例如,它们没有特殊标签。)鉴于这些约束,是否可以为包含 myFun() 的块自动设置 cache = TRUE?
我想到的策略是创建一个块挂钩,在块的文本中搜索关键字 (myFun),如果找到关键字,则设置 cache = TRUE。不过,我不知道这个解决方案是否可行,或者是否有更好的方法。
我在谢益辉关于knitr和R Markdown的书籍中寻找答案,我在knitr Github站点上搜索了问题。但我还没有在那些地方找到答案。 SO上有相关的帖子——例如,Evaluate a Chunk based on the output format of knitr。但是我还没有找到任何可以说明这个问题的东西。
【问题讨论】:
-
为什么不缓存所有的块?
-
另外,为什么不将
myFun <- memoise::memoise(myFun)与memoise::cache_filesystem( ... )一起使用?
标签: r caching r-markdown hook knitr