如何在多个(距离)矩阵上执行元素统计

时间:2015-05-31 15:29:01

标签: r matrix

我有几千个距离矩阵(使用as.dist()从矩阵转换而来)并且想要计算每个矩阵元素的均值,sd,中位数等。

举例说明:

Matrix.A

1
7 1
5 2 1

Matrix.B

2  
3 4
1 1 3

等...

例如,如果我想得到我能做的各个元素的总和:

Sum.Matrix <- Matrix.A + Matrix.B

Sum.Matrix

3
10 5
6 3 4

但如果我有数千个这样的矩阵怎么办?我怎样才能计算每个元素的总和,还有手段,sd等? 所有矩阵都存储在一个列表中。

1 个答案:

答案 0 :(得分:2)

尝试

lst2 <- lapply(lst1, as.matrix)
dim1 <- sapply(lst2, dim)[,1]
l <- length(lst1)
ar1 <- array(unlist(lst2), dim=c(dim1, l)) 

as.dist(apply(ar1, 1:2, sum))
as.dist(apply(ar1, 1:2, mean))
as.dist(apply(ar1, 1:2, sd))

数据

set.seed(24)
lst1 <- lapply(1:4, function(i) dist(sample(1:10,4, replace=TRUE)))