当我在 RStudio 中编织文档(通过单击"Knit")按钮时,会创建一个以文件名命名的缓存文件夹,${filename}_cache
.
我希望能够检查编译创建的对象,并将它们放在我的工作区中。为此,我从控制台调用knit()
:
knit("filename.Rmd")
工作区现在包含所有对象,但这样做会创建一个名为cache/
的缓存。
我试图欺骗 knitr 使用相同的带有选项的缓存名称:
opts_chunk$set(cache.path = "filename_cache/")
现在似乎使用相同的缓存目录,但从命令行调用knit()
似乎会使单击"Knit"按钮时创建的缓存无效。
例如,如果您有此文档,另存为cache.Rmd
:
```{r}
library(knitr)
opts_chunk$set(cache.path = "cache_cache/")
```
```{r, cache=TRUE}
foo <- rnorm(10)
foo
```
如果您使用"Knit"按钮或从控制台编译它,您将获得不同的结果。
有没有办法使用相同的缓存,独立于knit()
的调用方式?
对于 R Markdown 文档,不要调用knitr::knit()
,而是rmarkdown::render()
。rmarkdown= knitr +Pandoc,rmarkdown修改了knitr中的几个默认块选项,包括cache.path
选项(见源代码)。