特定范围值的累积函数

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】:

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

以上是关于特定范围值的累积函数的主要内容,如果未能解决你的问题,请参考以下文章

使用 NumPy 获得反向累积密度函数?

如果传递给它们的函数接受引用,STL 算法函数(如累积)是不是避免复制?

rand()随机函数产生的值的范围?

我无法使用 ecto 的 `over/2` 函数在窗口中添加特定的 frame_clause

从更高范围返回左值的 Lambda 函数

在列表中查找特定值的每三个实例