真的很感激一些帮助。我正在尝试生成一个累积和为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.
提前致谢。
答案 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