3

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

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 的控制结构之一、索引或类似的解决方案感兴趣。

4

1 回答 1

4

怎么样:

library(abind)
fun1 <- function(x) abind(lapply(x,'[[',"m2"),along=3)
abind(lapply(clist2,fun1),along=4)
于 2013-04-12T12:38:14.400 回答