在R中的列表中添加相应的元素

时间:2013-09-13 21:01:08

标签: r list matrix apply

我有一个包含多个矩阵的列表(从2到n)。为简单起见,假设我有一个包含5个矩阵的列表,如下所示。

> lst
[[1]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    1    1    1    1
[2,]    1    1    1    1    1

[[2]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    2    2    2    2    2
[2,]    2    2    2    2    2
...
[[5]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    5    5    5    5    5
[2,]    5    5    5    5    5

如何执行操作(类似于colSums但列表)以将这些操作添加到一起并获得单个矩阵作为输出:

     [,1] [,2] [,3] [,4] [,5]
[1,]   15   15   15   15   15
[2,]   15   15   15   15   15

我试过了mapply(sum,lst[[1]],lst[[2]],lst[[3]],lst[[4]],lst[[5]])。这确实得到了我的总和,但矩阵失去了它的形状,需要命名每个列表项(可能没有5,但如果我有100?)。

1 个答案:

答案 0 :(得分:9)

这应该这样做

Reduce('+', lst)