我有一个二维矩阵列表,我想计算一些统计数据,例如计算平均值。我可以将列表转换为数组,并使用应用,如:如何计算2D矩阵列表的平均值?
dat1<-list(a = matrix(seq(1,4),2,2), b= matrix(seq(5,8),2,2), c= matrix(seq(9,12),2,2))
# convert to array
obs <-array(unlist(dat1), dim = c(2, 2, 3))
meanObs <- apply(obs, c(1,2), mean, na.rm = TRUE)
反正有没有列表转换为数组执行此!?直接从列表中计算平均值。 非常感谢!
为什么你想避免阵列?列表可以包含混合类型的对象,因此通常函数通常不会将列表的元素组合在一起进行分析。例如,您可以在列表中添加不同维度的数组,这会让事情变得丑陋。通常你需要告诉R如何正确组合数据。 – MrFlick
我只是想避免通过转换到数组,以减少编码。但如果没有别的办法,那么我会去争取。 – newbie
@ jilber在重复问题上的答案,'apply(simplify2array(mylist),c(1,2),mean)'可能是你想要的(并且会推广到任何汇总统计) –