假设您有以下相当复杂的列表结构:
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的控制结构之一,索引或类似的解决方案感兴趣。
答案 0 :(得分:4)
怎么样:
library(abind)
fun1 <- function(x) abind(lapply(x,'[[',"m2"),along=3)
abind(lapply(clist2,fun1),along=4)