【发布时间】:2021-03-16 02:06:55
【问题描述】:
我有一个关于平均列表矩阵的复杂计算问题...
矩阵看起来像
mat <- matrix(list(), 100, 10)
每个单元格都填充有 3 个元素的列表。例如,mat[,1] 看起来像
mat[,1]
[[1]]
[1] 1.21 1.33 1.50
[[2]]
[1] 2.1 1.9 4.5
[[3]]
[1] 0.1 0.4 1.5
...
[[100]]
[1] 0.8 0.69 1.42
我希望对 100 个列表中的所有第一个元素进行平均。换句话说,就是计算 (1.21 + 2.1 + 0.1 + ... + 0.8)/100。同样,它可以应用于所有第二个元素,如 (1.33 + 1.9 + 0.4 + ... + 0.69)/100。还有第三个元素...如果可能的话,它可以将此过程应用于 mat 中的所有 10 列。
如何使用 lapply 或 sapply 函数来实现?
【问题讨论】:
-
最好举个小例子。例如较小尺寸的矩阵。
-
与 Thomas 的尝试类似,我认为
apply(mat, 2, function(x) colMeans(do.call(rbind, x)))应该适合您。
标签: r list matrix statistics