这个问题与这个问题有关:
我目前的问题是:在我的代码中,我通过调用lapply生成列表中的ggplots列表。我首先使用lapply,因为我执行了相当多的类似ggplots,并且手动生成每个ggplots太麻烦了。我怎样才能概括我的代码?
p <- qplot(rnorm(30))
plist <- lapply(c(1:10),FUN=function(x){
qplot(rnorm(30))
})
#works
year.plots <- list(p,p)
do.call(grid.arrange, c(year.plots))
#works
plist[[1]]
#works
grid.arrange(p,plist[[1]])
#does not work
year.plots <- list(p,plist[[1]])
do.call(grid.arrange, c(year.plots))
#How to generalize with the following idea?
year.plots <- list(p,plist[[1]],plist[[2]],...)
do.call(grid.arrange, c(year.plots))
答案 0 :(得分:9)
使用gridExtra v&gt; = 2.0.0,您现在可以,
grid.arrange(grobs = year.plots)
答案 1 :(得分:6)
没有必要将列表包含在c()
do.call(grid.arrange, year.plots)
和do.call(grid.arrange, c(year.plots))
中。
但是,如果要包含额外的参数,则需要将它们与c()
部分中的列表一起包装在一起,如下所示:
do.call(grid.arrange, c(year.plots, ncol=2))
答案 2 :(得分:0)
好的我很傻我40分钟后在代码中发现了错误。
do.call(grid.arrange, c(year.plots,plist,nrow=3))