2013-10-17 51 views
-1

會真的感謝您的幫助。我想生產出X的累積和數據幀,訂貨上Y.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. 

在此先感謝。

回答

2

嘗試

> 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 
+0

感謝您的回覆。我無法讓它工作,但最終使用了ineq軟件包中的Lc函數,這正是我想要做的。 – voyager