我有一个包含三个矩阵的列表:
a<-matrix(runif(100))
b<-matrix(runif(100))
c<-matrix(runif(100))
mylist<-list(a,b,c)
我想获得三个矩阵中每个元素的平均值。
我试过:
aaply(laply(mylist, as.matrix), c(1, 1), mean)
但这会返回每个矩阵的平均值,而不是将每个元素的平均值作为 rowMeans()
将。
最佳答案
也许你想要的是:
> set.seed(1)
> a<-matrix(runif(4))
> b<-matrix(runif(4))
> c<-matrix(runif(4))
> mylist<-list(a,b,c) # a list of 3 matrices
>
> apply(simplify2array(mylist), c(1,2), mean)
[,1]
[1,] 0.3654349
[2,] 0.4441000
[3,] 0.5745011
[4,] 0.5818541
向量
c(1,2)
为 MARGIN
在apply调用中表明函数mean
应该应用于行和列(同时),见 ?apply
了解更多详情。另一种选择是使用
Reduce
功能> Reduce("+", mylist)/ length(mylist)
[,1]
[1,] 0.3654349
[2,] 0.4441000
[3,] 0.5745011
[4,] 0.5818541
关于r - 矩阵列表中每个元素的均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18558156/