2017-09-25 91 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