2

这个问题在这里与这个问题相关联:

相关帖子

我现在的问题是:在我的代码中,我通过调用 lapply. 我首先使用 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))
4

3 回答 3

10

使用 gridExtra v>=2.0.0,您现在可以这样做,

grid.arrange(grobs = year.plots)
于 2015-07-20T20:19:06.000 回答
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))
于 2015-07-20T14:10:32.080 回答
0

好吧,我很傻,我在 40 分钟后在我的代码中发现了错误。

do.call(grid.arrange, c(year.plots,plist,nrow=3))
于 2015-07-20T14:49:05.283 回答