r-根据区块内容设置区块选项



我有一个R Markdown文档。本文档中的一些R代码块包含对函数myFun()的调用。运行此函数总是需要很长时间。因此,我想自动将包含myFun()的任何块设置为具有cache = TRUE。我不能修改myFun(),并且包含它的块没有特殊的识别功能。(例如,它们没有特殊的标签。(考虑到这些限制,是否可以为包含myFun()的块自动设置cache = TRUE

我想到的策略是创建一个区块挂钩,在区块的文本中搜索关键字(myFun(,如果找到关键字,则设置cache = TRUE。不过,我不知道这个解决方案是否可行,或者是否有更好的方法。

我在谢一辉关于针织品和R Markdown的书中寻找答案,并在针织品Github网站上搜索问题。但我还没有在这些地方找到答案。SO上有一些相关的帖子——例如,根据knifer的输出格式评估Chunk。但我还没有发现任何能说明这个问题的东西。

我倾向于同意@user2554330的观点,即您可能希望缓存函数myFun(),而不是代码块(例如,使用内存(。

无论如何,为了回答您的问题:是的,可以使用选项挂钩设置cache = TRUE,例如

knitr::opts_hooks$set(cache = function(options) {
if (any(grepl('myFun(', options$code))) {
options$cache <- TRUE
}
options
})

CCD_ 11不是检查代码块是否包含对CCD_ 12的调用的完全稳健的方法。如果你想要一个最健壮的方法,你可以试试utils::getParseData()

相关内容

  • 没有找到相关文章

最新更新