Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sum a list of matrices [duplicate]

Tags:

list

r

matrix

I have a list where each element is a 5*5 matrix. Eg

[[1]]               V1          V2          V3          V4          V5             [1,]   0.000000   46.973700   21.453500  338.547000   10.401600        [2,]  43.020500    0.000000  130.652000  840.526000   56.363700        [3,]  12.605600  173.238000    0.000000  642.075000   19.628100        [4,] 217.946000  626.368000  481.329000    0.000000  642.341000        [5,] 217.946000  626.368000  481.329000    0.000000  642.341000  [[2]]               V1          V2          V3          V4          V5             [1,]   0.000000   47.973700   21.453500  338.547000   10.401600        [2,]  143.020500    0.000000  130.652000  840.526000   56.363700        [3,]  312.605600  17.238000    0.000000  642.075000   19.628100        [4,]  17.946000  126.368000  481.329000    0.000000  642.341000       [5,] 217.946000  626.368000  481.329000    0.000000  642.341000   ... 

How can I use an apply-like function to sum matrix [1] to [n], and return a 5*5 matrix as a result (each element is a sum of the corresponding elements in each of the matrix in the list) ?

like image 385
Seen Avatar asked Jul 25 '12 02:07

Seen


1 Answers

Use Reduce.

## dummy data  .list <- list(matrix(1:25, ncol = 5), matrix(1:25, ncol = 5))  Reduce('+', .list) ##       [,1] [,2] [,3] [,4] [,5] ## [1,]    2   12   22   32   42 ## [2,]    4   14   24   34   44 ## [3,]    6   16   26   36   46 ## [4,]    8   18   28   38   48 ## [5,]   10   20   30   40   50 
like image 64
mnel Avatar answered Sep 30 '22 08:09

mnel