dplyr中的“转发”累积总和

迈克尔·麦克阿斯基尔

在检查纵向研究的数据集时,我通常会dplyr从原始数据分析链中获得如下结果

df = data.frame(n_sessions=c(1,2,3,4,5), n_people=c(59,89,30,23,4))

即,在此时间点,有多少参与者完成了一定数量的评估的计数。

尽管了解多少人准确地完成了n次会话很有用,但我们更经常需要知道多少人至少完成了n次会话。如下表所示,标准的累积总和是不合适的,我们想要的是n_total中的值,这是中的值的“正向累积总和” n_people也就是说,每行中的值应该是其自身值及其之外的所有值的总和,而不是标准的累积总和,标准累积总和是直到并包括其自身的所有值的总和:

n_sessions n_people  n_total  cumsum
         1       59      205      59
         2       89      146     148
         3       30       57     178
         4       23       27     201
         5        4        4     205

生成累计和很简单:

mutate(df, cumsum = cumsum(n_people))

用于生成可以合并到dplyr分析链中的“前向累积总和”的表达式是什么我猜想这cumsum需要n_peoplen_sessions降序排序之后应用,但是在保留数据帧的原始顺序的同时还不能完全理解如何获得答案。

大卫·罗宾逊(David Robinson)

您可以对逆向矢量求和,然后对结果求逆。内置的rev函数在这里很有帮助:

mutate(df, rev_cumsum = rev(cumsum(rev(n_people))))

例如,在您的数据上将返回:

  n_sessions n_people rev_cumsum
1          1       59        205
2          2       89        146
3          3       30         57
4          4       23         27
5          5        4          4

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用dplyr的条件累积总和

来自分类Dev

嵌套列表中的累积总和

来自分类Dev

SAS中的条件累积总和

来自分类Dev

SQL - postgres 中的累积总和

来自分类Dev

JavaScript中的多维数组累积总和

来自分类Dev

解释列表累积总和中的列表理解

来自分类Dev

r中基于两列的累积总和

来自分类Dev

Excel VBA 数组中的累积总和

来自分类Dev

DB2 中每项的累积总和

来自分类Dev

计算每行中字段的累积总和

来自分类Dev

加速 SQL Server 中的累积总和计算

来自分类Dev

dplyr中每个组的r累积

来自分类Dev

dplyr分组数据中的总和

来自分类Dev

SQL-sql中的累积总和,基于连续日期

来自分类Dev

numpy数组中的累积总和,具有停止条件

来自分类Dev

MySQL中自定义排序的累积总和

来自分类Dev

使用.SD的data.table中的列子集的累积总和

来自分类Dev

值的累积总和,无需计算列中的重复值

来自分类Dev

Bin使用累积总和而不是python中的观察值

来自分类Dev

没有当前行的Python中的累积总和

来自分类Dev

使用PostgreSQL中的窗口函数进行SQL查询累积总和

来自分类Dev

如何在SQL Server中维护每个用户的累积总和

来自分类Dev

根据Excel VBA中的累积总和创建新ID

来自分类Dev

具有相同ID的列中的值的累积总和

来自分类Dev

SQL-sql中的累积总和,基于连续日期

来自分类Dev

计算跨特定跨度的熊猫数据框中的累积总和

来自分类Dev

来自 MySQL 查询的 PHP 数组中的累积总和

来自分类Dev

mysql 中的累积总和列 - 设置函数不起作用

来自分类Dev

熊猫时间累积总和