我知道我可以使用cache=TRUE选项来使用R Markdown来缓存R代码块knitr.例如,它可能看起来像这样:
```{r longanalysis, cache=TRUE}
for (i in 1:5000) {
lm((i+1)~i)
}
```
Run Code Online (Sandbox Code Playgroud)
我意识到,如果我想禁用该分析的缓存,我可以cache=FALSE在代码块中更改选项.但是,如果我有许多启用了缓存的R代码块,则需要仔细查找和替换操作.
cache=FALSE整个R Markdown文档?我见过第一行的例子.所以我想这是一种设置全局设置的方法,但我认为本地设置会覆盖全局设置.
`r opts_chunk$set(fig.width=5, fig.height=5, fig.path='')`
Run Code Online (Sandbox Code Playgroud)
Das*_*son 34
似乎默认设置为FALSE,本地块选项覆盖全局选项,但您可以做的一件事是将全局选项设置为默认缓存,方法是将其添加到文档顶部
`r opts_chunk$set(cache=TRUE)`
Run Code Online (Sandbox Code Playgroud)
然后,对于您不希望缓存的部分,您将显式将这些部分设置为cache = FALSE.
然后,如果要将整个文档设置为不缓存任何内容,可以将全局选项更改为FALSE并重新运行它.
问题是,如果任何块选项设置为cache = TRUE,那么这些选项将覆盖全局设置,如果将global选项设置为FALSE,则不会重新运行.所以我认为实现你想要的唯一方法是将默认值更改为cache = TRUE,显式设置你不希望缓存的块有缓存= FALSE,然后你可以将全局选项切换为FALSE来做什么你想要什么时候发生.
Jer*_*lim 17
knitr创建一个目录来存储缓存的对象.默认情况下会调用它cache.要确保无论代码块cache设置如何都运行所有分析,只需删除缓存目录的内容即可.
因此,在Linux上的Rstudio中
Tools - Shell以在包含markdown文件的工作目录中打开控制台.rm cache/*这是我目前的基本工作流程
`r opts_chunk$set(cache=TRUE)`到R Markdown文件.dependsonknitr中的选项.命名还允许选择性删除缓存目录中的命名R代码块.Cor*_*one 13
一旦您已经创建了文档,就太迟了,但是对于将来的文档,您可能需要考虑使用参数进行评估的事实knitr.这意味着您可以拥有以下内容:
```{r data.loading.chunk1, cache = cachedata}
blah blah
```
blah blah
```{r model.fitting.chunk1, cache = cachemodels}
blah blah
```
Run Code Online (Sandbox Code Playgroud)
然后在文档的顶部我有类似的东西:
```{r libraries.etc, echo=FALSE, results='hide', message=FALSE}
cachedata = TRUE
cachemodels = TRUE
```
Run Code Online (Sandbox Code Playgroud)
然后,它允许您一次快速打开大量块的缓存.