在 R markdown 中,如何防止来自非缓存块的图被单独保存?
In R markdown, how do I prevent plots from non-cached chunks from being saved separately?
编写 R markdown 文件时,从任何具有 cache=TRUE
的块输出的绘图与 HTML 输出独立保存。这对我来说很有意义。然而,如果即使是单个区块设置了 cache=TRUE
选项, 所有 区块,包括带有 cache=FALSE
的区块,都会独立保存它们的地块。例如,以下代码为两个块保存图像文件:
---
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()
```
如果有人想在特定块上实施缓存但不想独立保存输出中的每个图,有什么方法可以防止这种情况发生?如果没有这样的选择并且这是设计使然,那么理由是什么?为什么有必要从不实现缓存的块中保存绘图?
绘图总是写到文件中。可以看到,对于缓存块,重新编织文档时图像没有被修改,但非缓存块中的图像被重写(查看修改日期)。 R 没有重新运行 生成缓存块图像的代码。如果您没有启用任何缓存,rmarkdown 将在 运行 之后“清理”并删除所有图像。但是因为 rmarkdown 不会在每个块级别上跟踪副作用,所以当启用 cachine 时,它无法再自行清理,因为它不知道哪些图像来自哪个块。所以它让他们都安全。
编写 R markdown 文件时,从任何具有 cache=TRUE
的块输出的绘图与 HTML 输出独立保存。这对我来说很有意义。然而,如果即使是单个区块设置了 cache=TRUE
选项, 所有 区块,包括带有 cache=FALSE
的区块,都会独立保存它们的地块。例如,以下代码为两个块保存图像文件:
---
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()
```
如果有人想在特定块上实施缓存但不想独立保存输出中的每个图,有什么方法可以防止这种情况发生?如果没有这样的选择并且这是设计使然,那么理由是什么?为什么有必要从不实现缓存的块中保存绘图?
绘图总是写到文件中。可以看到,对于缓存块,重新编织文档时图像没有被修改,但非缓存块中的图像被重写(查看修改日期)。 R 没有重新运行 生成缓存块图像的代码。如果您没有启用任何缓存,rmarkdown 将在 运行 之后“清理”并删除所有图像。但是因为 rmarkdown 不会在每个块级别上跟踪副作用,所以当启用 cachine 时,它无法再自行清理,因为它不知道哪些图像来自哪个块。所以它让他们都安全。