在检查长期研究的数据集时,我通常会从原始数据中得到像这样的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
分析链中添加生成“向前累积总和”的表达式?我猜想需要对n_people
按照n_sessions
降序排序后应用cumsum
函数,但是不确定如何在保留数据框原始顺序的同时得出答案。