2017-09-25 67 views
0

我有一個表格,其中列「年齡」的值爲1到10,列「Population」具有爲每個「年齡」值指定的值。我想要爲總體生成一個累積函數,使得結果值從至少爲1以上,2以上的年齡開始,依此類推。我的意思是,結果數組應該是(203,180 ..等等)。任何幫助,將不勝感激!特定值範圍的累積函數

Age Population Withdrawn 
1  23   3 
2  12   2 
3  32   2 
4  33   3 
5  15   4 
6  10   1 
7  19   2 
8  18   3 
9  19   1 
10 22   5 

回答

2

您可以使用cumsumrev

df$sum_above <- rev(cumsum(rev(df$Population))) 

結果:

> df 
    Age Population sum_above 
1 1   23  203 
2 2   12  180 
3 3   32  168 
4 4   33  136 
5 5   15  103 
6 6   10  88 
7 7   19  78 
8 8   18  59 
9 9   19  41 
10 10   22  22 
+0

IMO的OP要:'REV(cumsum(REV(DF $人口)))' – digEmAll

+0

@digEmAll謝謝你,你是對的;我更新了我的答案 – h3rm4n

+0

謝謝!但是當括號內的'df $'被刪除時它就起作用了。 正如您在原始問題中所看到的,我添加了另一列「撤回」。我想修改以前的答案rev(cumsum ..),以這種方式,這些值代表了被收回孩子的累積比例。任何幫助?提前致謝! – Simos