数据帧对象中的后续行求和

时间:2014-04-09 14:51:34

标签: r

我想对columnvalue进行后续的行求和,并将结果放入一个新的columnvariable,而不会删除任何另一列值。

下面是一些R代码和一个可以解决这个问题的例子,希望能够说明我的问题。我想知道是否有更优雅的方法,因为for循环在我的实际对象中会耗费时间。

感谢您的反馈。

作为示例数据框:

MyDf <- data.frame(ID = c(1,1,1,2,2,2), Y = 1:6)
MyDf$FIRST <- c(1,0,0,1,0,0)
MyDf.2 <- MyDf
MyDf.2$Y2 <- c(1,3,6,4,9,15)

这样做的目的是让我可以编写代码,分别在Y2中为每个ID计算MyDf.2

这就是我想出来的,它就是诀窍。 (计算TEST中必须等于MyDf cin Y2的{​​{1}}列

MyDf.2

1 个答案:

答案 0 :(得分:2)

您需要avecumsum才能获得所需的列。 transform只是为了修改您现有的data.frame。

> MyDf <- transform(MyDf, TEST=ave(Y, ID, FUN=cumsum))
  ID Y FIRST TEST
1  1 1     1    1
2  1 2     0    3
3  1 3     0    6
4  2 4     1    4
5  2 5     0    9
6  2 6     0   15