1

非常感谢一些帮助。我正在尝试生成一个具有 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.

提前致谢。

4

1 回答 1

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
于 2013-10-17T13:33:25.800 回答