【问题标题】:Adding corresponding elements in a list in R在R中的列表中添加相应的元素
【发布时间】:2013-09-18 15:55:54
【问题描述】:

我有一个包含多个矩阵(从 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 怎么办?)。

【问题讨论】:

  • 如果你确实想使用mapply(我不推荐在这里)你可以使用do.call(mapply , c(lst , FUN = sum)),但这会去除矩阵属性。

标签: r list matrix apply


【解决方案1】:

应该这样做

Reduce('+', lst)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 2019-04-08
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    相关资源
    最近更新 更多