R:调用列表中的多个元素

时间:2018-10-25 08:49:47

标签: r

我已在列表中保存了多个ggplots,并希望使用cowplot软件包对其进行绘制。但是要做到这一点,您必须调用plot_grid函数中的每个条目。

示例代码:

plot<-vector("list",length=6)
data<-vector("list",length=6)

for(i in 1:6){
  data[[i]]<-data.frame(x=rnorm(10),y=rnorm(10))
 plot[[i]]<-ggplot(data=data[[i]])+geom_point(aes(x=x,y=y))
}

plot_grid(plot[[1]],plot[[2]],plot[[3]],plot[[4]],plot[[5]],plot[[6]])

我正在寻找一种将列表的多个条目调用到plot_grid函数中的简便方法。如果可能的话,能够调用某些特定条目也是很整洁的。

2 个答案:

答案 0 :(得分:2)

使用do.call

library(gridExtra) # note that I'm using grid.arrange from the gridExtra library
do.call("grid.arrange", c(plot_list, ncol=2, nrow=3))

plot_grid

library(cowplot)
do.call("plot_grid", c(plot, ncol=2, nrow=3))

仅供参考,我不使用保留名称调用对象,而是使用plot之类的变量名称代替plot_list

答案 1 :(得分:0)

您还可以使用public int MobileExistToAnotherGenerationUnit(string mobileNo, long generationUnitId) { int result = _mobileRepository.Table .Where(gum => gum.mobileno == mobileNo && gum.generation_unit_id != generationUnitId) .Select(s => new Generation_unit_mobile { id = s.id }).ToList().Count; return result == 0 ? 0 : 1; } purrr::invoke是核心tidyverse的一部分):

purrr

注意:library(tidyverse) library(cowplot) invoke(plot_grid, plot) invoke的包装,因此这实际上是@RLave答案的变体:上面的内容与

相同
do.call