【问题标题】:Cumulative function for a specific range of values特定范围值的累积函数
【发布时间】:2017-09-25 18:45:08
【问题描述】:

我有一个表格,其中有一列“年龄”的值从 1 到 10,还有一列“人口”,它具有为每个“年龄”值指定的值。我想为人口生成一个累积函数,使得结果值从至少 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

【问题讨论】:

    标签: r cumsum


    【解决方案1】:

    您可以使用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
    

    【讨论】:

    • OP 想要的 IMO:rev(cumsum(rev(df$Population)))
    • @digEmAll 谢谢你,你是对的;我更新了我的答案
    • 谢谢!但是当括号内的“df$”被删除时,它就起作用了。正如您在原始问题中看到的那样,我添加了另一列“撤回”。我想修改前面的答案 rev(cumsum..),以这种方式,这些值代表退缩孩子的累积比例。有什么帮助吗?提前致谢!
    • @Simos 你的意思是df$sum_withdrawn &lt;- cumsum(df$Withdrawn)?
    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    相关资源
    最近更新 更多