gpt4 book ai didi

r - 跨不同文档类型缓存 block

转载 作者:行者123 更新时间:2023-12-04 10:10:38 25 4
gpt4 key购买 nike

我正在使用 RStudio 的“预览”版本,并且我有一个 Rmd 文件,用于生成 html、pdfdocx 文档。我已经设置了这样的选项:

opts_chunk$set(cache=TRUE, comment="",message=FALSE, warning = FALSE)

cache=TRUE 在我尝试重新创建具有相同扩展名 eg.htm 的文档时效果很好,但如果我尝试使用相同的 Rmd 文件来创建 pdfdocx 文档,然后缓存的图形不会被重新使用并且执行速度非常慢。有没有办法为不同类型的文档重新使用缓存的图形?请考虑以下最小示例:

{r,echo=FALSE}
library(knitr)
opts_chunk$set(cache=TRUE, comment="",message=FALSE, warning = FALSE)


{r, echo=FALSE}
plot(cars)

如果我选择 knit html 选项,它会创建 html 文档并重新使用代码,但单击 knit pdfcache=TRUE 被忽略。显然,这个最小的例子并不明显,但使用我的文件和大约 30 个图形,它完全减慢了速度。

最佳答案

这是因为 rmarkdown 包为不同的输出格式设置了不同的 block 选项,例如PDF 输出使用 block 选项 dev='pdf',HTML 输出使用 dev='png'。更改 block 选项将使缓存失效。

你可以做的一件事是为不同的输出格式创建不同的缓存目录,例如

```{r setup, include=FALSE}
library(knitr)
local({
to = opts_knit$get('rmarkdown.pandoc.to') # output format
opts_chunk$set(cache.path = paste('cache', to, sep = '_'))
})
```

请注意,这只会确保缓存分别适用于输出格式。你不能跨不同的输出格式共享缓存数据库,除非你为所有输出格式设置相同的 block 选项,这是不切实际的,所以我想你必须接受这个次优的解决方案。

关于r - 跨不同文档类型缓存 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com