【问题标题】:sum by groups in matrix in R在R中的矩阵中按组求和
【发布时间】:2018-11-27 11:22:20
【问题描述】:

所以我开始学习 R 并且不知道是否有一种简单的方法可以对矩阵的每 n 个参数进行求和,当它完成时,将范围移动到另一组列,直到所有列已经计算出来了

[1    4    7]
[2    5    8]
[3    6    9]

所以在这种情况下,如果 n=2,输出应该是

[5    11    8]
[7    13   10]
[9    15   12]

有没有有效的方法?谢谢!

【问题讨论】:

  • 是的,所以如果 n=2 它将选择 [1 4] 并将它们相加然后 [3 9] 直到完成
  • 解决此问题所需的函数:applyzoo::rollsum。祝你好运:-)
  • 感谢您的耐心等待 :)

标签: r


【解决方案1】:

数据:

m <- matrix(1:9, 3, 3)

设置:

n = 2

代码:

t(
apply(m, 1, function(x) { zoo::rollsum(c(x,x), n, align = "left")[seq_along(x)] })
)

结果:

#     [,1] [,2] [,3]
#[1,]    5   11    8
#[2,]    7   13   10
#[3,]    9   15   12

你的作业::-)

  • 下一个问题将是一个明确的问题。
  • 阅读我使用过的每个函数:例如,在 R-console 中键入 ?t?apply ... 等。

【讨论】:

    猜你喜欢
    • 2020-08-26
    • 2020-06-20
    • 2014-07-21
    • 2018-05-10
    • 2016-07-25
    • 2015-06-10
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多