从复杂列表中检索低级元素(R)

时间:2013-04-12 11:59:39

标签: r list command

假设您有以下相当复杂的列表结构:

all_m<-list();clist1<-list();clist2<-list()
for (j in 1:3){ for (i in 1:5){
      m1<-matrix(rnorm(4,0,1),2,2)
      m2<-matrix(rnorm(9,0,1),3,3)
      m3<-matrix(rnorm(16,0,1),4,4)
      m4<-matrix(rnorm(25,0,1),5,5)
      all_m<-list(m1,m2,m3,m4)
      names(all_m)<-c('m1','m2','m3','m4')
      clist1[[i]]<-all_m
      clist2[[j]]<-clist1
    }}

如何处理和检索clist2中所有类型相同的低级元素,比如$m2,并将它们重新排列成数组?

我想这可能没有循环。我会对使用R的控制结构之一,索引或类似的解决方案感兴趣。

1 个答案:

答案 0 :(得分:4)

怎么样:

library(abind)
fun1 <- function(x) abind(lapply(x,'[[',"m2"),along=3)
abind(lapply(clist2,fun1),along=4)