r - 在 R markdown 中,如何防止非缓存 block 的绘图被单独保存?

标签 r caching plot r-markdown

当编织 R markdown 文件时,从带有 cache=TRUE 的任何 block 输出的绘图将独立于 HTML 输出保存。这对我来说很有意义。但是,即使单个 block 设置了 cache=TRUE 选项,所有 block (包括那些带有 cache=FALSE 的 block )都会保存其绘图独立。例如,以下代码保存两个 block 的图像文件:

---
title: "Cache Plot Test"
output:
  html_document:
    df_print: paged
---

```{r test_plot1, cache = FALSE}
library(ggplot2)
ggplot(airquality, aes(x = Temp, y = Wind)) +
  geom_point()
```

```{r test_plot2, cache = TRUE}
library(ggplot2)
ggplot(airquality, aes(x = Month, y = Ozone)) +
  geom_point()
```

如果有人想在特定 block 上实现缓存但又不想独立保存输出中的每个图,有什么方法可以防止这种情况发生?如果没有这样的选项并且这是设计使然,那么理由是什么?为什么需要从未实现缓存的 block 中保存绘图?

最佳答案

绘图始终写入文件。可以看到,对于缓存 block ,重新编织文档时图像没有被修改,但非缓存 block 中的图像被重写(检查修改日期)。 R 不会重新运行为缓存 block 生成图像的代码。如果您没有启用任何缓存,rmarkdown 将在运行后“清理”并删除所有图像。但由于 rmarkdown 不会跟踪每个 block 级别的副作用,因此当启用缓存时,它无法再自行清理,因为它不知道哪些图像来自哪个 block 。所以这可以保证他们所有人的安全。

关于r - 在 R markdown 中,如何防止非缓存 block 的绘图被单独保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70270796/

相关文章:

R 保留重复行中 nas 最少的行

r - R中绘图的坐标

java - 如何为翻译内存库/缓存设计高性能的键匹配算法?

r - 在 r、ggplot2、lattice 或latticeExtra 中创建更连续的调色板

r - geom_smooth 没有出现在 ggplot 上

r - 如何使用 dplyr 按组有条件地更改列中的值?

r - 用rstudio中数据帧的每个条目制作一个列表

angularjs - 更改 Cloudfront 下载分发源路径是否会导致缓存失效?

caching - 仅当在 gitlab ci 中未缓存或 package.json 更改时,我如何才能运行依赖项安装作业?

matlab - 将可变参数传递给 plot() 函数