リストをlaply(lst,“[”)で配列にしてapply()。
さらにReduce(“+”, lst)で一発!
# install.packages("plyr")
library(plyr)
lst <- list()
mat<-matrix(1:9, 3)
for(i in 1:3)
lst[[i]] <- mat
lst2 <- laply(lst, "[") # これでなんとか。
dimnames(lst2)<-list(c("x1", "x2", "x3"), # x軸の名前
c("y1", "y2", "y3"), # y軸の名前
c("z1", "z2", "z3")) # z軸の名前
lst
## [[1]]
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
##
## [[2]]
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
##
## [[3]]
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
apply(lst2, 2:3, sum) # 串刺し合計
## z1 z2 z3
## y1 3 12 21
## y2 6 15 24
## y3 9 18 27
以上が Reduce 一発!
Reduce("+", lst)
## [,1] [,2] [,3]
## [1,] 3 12 21
## [2,] 6 15 24
## [3,] 9 18 27