2014-09-24 116 views
4

什麼是計算同一維數多個矩陣均值的有效方法?計算R中多個矩陣的均值

如果A,B是2×2矩陣然後,

A 
2 3 
4 5 

B 
6 7 
8 9 

平均值(A,B)應該給

4 5 
6 7 

平原的方法是做(A + B + ... )/數量的矩陣。 (並明確處理NA值)

任何其他優雅的方法或庫來做到這一點(支持na.rm)?

回答

5

它們合併到一個數組中,並使用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 

如果apply不夠高效,你可以使用colMeans(提供NA處理)與aperm

colMeans(aperm(Y, c(3, 1, 2)), na.rm = TRUE) 
#  [,1] [,2] 
#[1,] 4 5 
#[2,] 6 7 
+0

請問解決方案是如果矩陣是rasterstacks ..ie多個rasterstacks不同? – Joe 2016-01-04 10:45:56