【问题标题】:How can I make this loop?我怎样才能使这个循环?
【发布时间】:2020-08-14 03:44:49
【问题描述】:

我有一个包含每月收益的矩阵,我想在 R 中创建一个新矩阵,它将包含基于此矩阵的季度收益。我怎样才能做一个循环来计算它?更准确地说,月回报矩阵的维度为 552(行)x25(列),新的矩阵将有 184(行)x25(列),其中

  • new(1,1)=old(1,1)+old(2,1)+old(3,1)
  • new(2,1)=old(4,1)+old(5,1)+old(6,1)
  • ...
  • new(184,25)=old(550,25)+old(551,25)+old(552,25)

(通过术语 new(,) 我指的是新矩阵的元素,以及具有每月回报的矩阵的 old(,))。我不知道如何修复这个新矩阵。有人知道如何在 R 中计算这个吗?

【问题讨论】:

  • for (j in 1:25) { for (i in 1:184) { new[i,j] = old[i*3 -2,j] + old[i*3-1,j] + old[i*3,j] } } ?
  • *是什么意思?
  • * 表示乘法
  • 谢谢。效果很好!

标签: r matrix sum


【解决方案1】:

或许你可以试试下面的代码

new <- rowsum(old,ceiling(seq(nrow(old))/3))

new <- unname(t(as.matrix(sapply(split(as.data.frame(old),ceiling(seq(nrow(old))/3)),colSums))))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多