在 R 中循环数据时创建一个 pdf

create one pdf whilst looping over data in R

我从 here:

看到了这个
library(ggplot2)

p <- ggplot(iris, aes(x = Species, y = Sepal.Length))
colors <- c("black", "red", "green")
 
for(color in colors){
 
   final.plot <- p + geom_boxplot(color = color)
 
  pdf(paste0(color, ".pdf"))
  print(final.plot)
  dev.off()
}

它生成了多个 pdf。还可以在这样的循环中将几个图、表、标题附加到一个 pdf 吗?我还没有发现任何有用的东西,并且认为 knitr、rmarkdown 等不适合这个用例?

谢谢。

如果我没理解错的话,这真的很简单,只需将 pdfdev.off 放在循环外即可:

library(ggplot2)

p <- ggplot(iris, aes(x = Species, y = Sepal.Length))
colors <- c("black", "red", "green")

pdf("all_figures.pdf")
for(color in colors){
  final.plot <- p + geom_boxplot(color = color)
  print(final.plot)
}

dev.off()