特定范围值的累积函数
Posted
技术标签:
【中文标题】特定范围值的累积函数【英文标题】: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
【问题讨论】:
【参考方案1】:您可以使用cumsum
和rev
:
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 <- cumsum(df$Withdrawn)
?以上是关于特定范围值的累积函数的主要内容,如果未能解决你的问题,请参考以下文章
如果传递给它们的函数接受引用,STL 算法函数(如累积)是不是避免复制?