我该如何进行循环?

时间:2020-04-29 21:41:44

标签: r matrix sum

我有一个包含月度回报的矩阵,并且我想在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中计算吗?

1 个答案:

答案 0 :(得分:0)

也许您可以尝试以下代码

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))))