矩阵列表中的平均矩阵

时间:2016-10-28 12:12:51

标签: r matrix

这个问题有一个简单而好的答案吗?

我有一个给定的矩阵列表“l”(具有相同的ncol& nrow)。

l<-lapply(1:10,function(x){
  matrix(runif(100),ncol=10)
})

我想要每个细胞的平均值。 我可以用for循环做到这一点,但应该有更好的解决方案!

有两个矩阵,我可以用(m1 + m2)/ 2来做。 但是+只接受两个参数,所以我不能这样做:

do.call(.Primitive("+"),l) / length(l)

我期待着一些不错的答案:)

提前致谢

1 个答案:

答案 0 :(得分:5)

以下是一些替代方案:

1)减少

<connectionStrings>
    <add name="DB" connectionString="data source=.\sqlExpress;initial catalog=XXX;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
  </connectionStrings>

2)simlify2array / apply 比(1)长一点;但是,它确实具有容易扩展到Reduce("+", l) / length(l) 以外的功能的优点:

mean

3)tapply 不像(1)那么简单,但是(2)它扩展到apply(simplify2array(l), 1:2, mean) 以外的函数:

mean

4)rowMeans

array(tapply(unlist(l), sequence(lengths(l)), mean), dim(l[[1]]))