2016-01-26 38 views
1

如何計算R中列表中存儲的數組的平均值?結果應該是包含平均值的相同大小的數組......例如:R中的3D數組列表的平均值

a1 <- array(runif(100), dim=c(4, 5, 5)) 
a2 <- array(runif(100), dim=c(4, 5, 5)) 
a3 <- array(runif(100), dim=c(4, 5, 5)) 
a4 <- array(runif(100), dim=c(4, 5, 5)) 
a5 <- array(runif(100), dim=c(4, 5, 5)) 

l <- list(a1, a2, a3, a4, a5) 

[...] 

應該產生包含平均值的維數4,5,5的數組。

我可以做它矩陣列表:

apply(simplify2array(myList), 1:2, mean) 

,但它並不適用於我的目的工作...

感謝您的任何線索!

回答

1

可能是我們可以使用Reduce

Reduce(`+`, l)/length(l) 
+1

謝謝,它的工作完美,非常快! – Marc

1

你可以先改變你數組列表變爲四維陣列,然後使用apply

a <- array(unlist(l), dim = c(dim(l[[1]]), length(l))) 
apply(a, 1:3, mean) 
+0

感謝您的選擇! – Marc