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

dfdata.frame はどこにありますか。

df$CumSumX <- cumsum(df[order(df$Y), "X"]) # this is another alternative
于 2013-10-17T13:33:25.800 に答える