R:以Y的升序排列的X的累积和

时间:2013-10-17 13:29:54

标签: r

真的很感激一些帮助。我正在尝试生成一个累积和为X的数据框,在Y上排序。

例如,如果我有以下数据框df:

Y   X
1   1
3   4
2   2
4   7
5   8

我想要制作:

Y   X   CumSumX
1   1   1
3   4   3
2   2   7
4   7   14
5   8   22

所以:

df$CumSumX[1] ---> 1 (lowest value of Y)
df$CumSumX[2] ---> 1 + 2 (cumulative sum of X for 1st and 2nd lowest value of Y)
df$CumSumX[3] ---> 1 + 2 + 4 (cumulative sum of X for 1st, 2nd and 3rd lowest values of Y)
etc.

提前致谢。

1 个答案:

答案 0 :(得分:3)

尝试

> transform(df, CumSumX=cumsum(df[order(df$Y), "X"]))
  Y X CumSumX
1 1 1       1
2 3 4       3
3 2 2       7
4 4 7      14
5 5 8      22

其中df是您的data.frame。

df$CumSumX <- cumsum(df[order(df$Y), "X"]) # this is another alternative