【问题标题】:How to perform element-wise statistics over numerous (distance) matrices如何在众多(距离)矩阵上执行元素统计
【发布时间】:2015-05-31 15:29:01
【问题描述】:

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

举例说明:

矩阵.A

1
7 1
5 2 1

矩阵.B

2  
3 4
1 1 3

等等……

例如,如果我想得到单个元素的总和,我可以这样做:

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

求和矩阵

3
10 5
6 3 4

但是如果我有数千个这样的矩阵呢?我如何不仅计算每个元素的总和,还计算平均值、sd 等? 所有矩阵都存储在一个列表中。

【问题讨论】:

  • 您的矩阵集合是如何存储的?它们是在list 中还是散布在您的工作空间中?
  • 对不起,我忘记了:它们存储在一个列表中;我会将这些信息添加到原始帖子中。
  • 请参阅how to create a great reproducible example,以便更轻松地为您提供帮助。

标签: r matrix


【解决方案1】:

试试

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)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多