什么是计算相同维度的多个矩阵的平均值的有效方法?
如果A,B是2 x 2矩阵那么,
A
2 3
4 5
B
6 7
8 9
Run Code Online (Sandbox Code Playgroud)
平均值(A,B)应该给出
4 5
6 7
Run Code Online (Sandbox Code Playgroud)
简单的方法是做(A + B + ...)/数量的矩阵.(并明确处理NA值)
任何其他优雅的方法或库(支持na.rm)?
将它们组合成一个数组并使用apply:
A <- matrix(c(2,4,3,5), 2)
B <- matrix(c(6,8,7,9), 2)
X <- list(A, B)
Y <- do.call(cbind, X)
Y <- array(Y, dim=c(dim(X[[1]]), length(X)))
apply(Y, c(1, 2), mean, na.rm = TRUE)
# [,1] [,2]
#[1,] 4 5
#[2,] 6 7
Run Code Online (Sandbox Code Playgroud)
如果apply效率不高,您可以使用colMeans(提供NA处理)aperm:
colMeans(aperm(Y, c(3, 1, 2)), na.rm = TRUE)
# [,1] [,2]
#[1,] 4 5
#[2,] 6 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4511 次 |
| 最近记录: |