在R中打印为单个pdf的列表

在R中打印为单个pdf的列表,r,list,pdf,ggplot2,export,R,List,Pdf,Ggplot2,Export,我正在尝试将ggplot项的列表导出到一个.pdf文件中。 我一直在这里寻找一些技巧,但所有的解决方案都不适合我。 我能得到的只是无法打开的.pdf格式的输出,或者没有页面的结果 有人能给我一些建议吗 下面是我的代码示例: p <- lapply(x, fun) #and i tried library(gridExtra) pdf("plots.pdf", onefile = TRUE) for (i in seq(length(p))) { do.call("grid.a

我正在尝试将ggplot项的列表导出到一个.pdf文件中。 我一直在这里寻找一些技巧,但所有的解决方案都不适合我。 我能得到的只是无法打开的.pdf格式的输出,或者没有页面的结果

有人能给我一些建议吗

下面是我的代码示例:

p <- lapply(x, fun)
#and i tried
    library(gridExtra)

pdf("plots.pdf", onefile = TRUE)
for (i in seq(length(p))) {
  do.call("grid.arrange", p[[i]])  
}
dev.off()

#and this


 GG_save_pdf = function(list, filename) {


    #start pdf

  pdf(filename)

      #loop
      for (p in list) {
        print(p)
      }

      #end pdf
      dev.off()

      invisible(NULL)
    }
    #and this too
library(ggplot2)


pdf("allplots.pdf",onefile = TRUE)
for(i in glist){
   tplot <- ggplot(df, aes(x = as.factor(class), y = value))
   print(tplot)
}
dev.off()

p你很接近。由于您的
p
是一个列表,
do.call
足以在列表上应用
“grid.arrange”
,无需循环等。例如:

库(ggplot2)
##创建三个示例图

p你很接近。由于您的
p
是一个列表,
do.call
足以在列表上应用
“grid.arrange”
,无需循环等。例如:

库(ggplot2)
##创建三个示例图

p谢谢@jay.sf!这是一个结果,我可以问你如何增强代码,以获得一个绘图页?这会解决我所有的问题。谢谢@jay.sf!这是一个结果,我可以问你如何增强代码,以获得一个绘图页?那会解决我所有的问题。
library(ggplot2)

## create three example plots
p <- replicate(3, ggplot(mtcars, aes(hp, mpg)) +
  geom_point(), simplify=F)

str(p, 1)
# List of 3
#  $ :List of 9
#   ..- attr(*, "class")= chr [1:2] "gg" "ggplot"
#  $ :List of 9
#   ..- attr(*, "class")= chr [1:2] "gg" "ggplot"
#  $ :List of 9
#   ..- attr(*, "class")= chr [1:2] "gg" "ggplot"


library(gridExtra)

pdf("plots.pdf", onefile = TRUE)
do.call("grid.arrange", p)  
dev.off()