You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中为分组数据添加基于历史值累加的计算列?

解决方案:计算分组内历史value累加和

针对你的需求,我们可以通过dplyr的分组窗口函数快速实现,以下是两种可行方法:

方法一:累积和减去当前值

library(dplyr)

pdata <- pdata %>%
  group_by(id) %>%
  mutate(OUTPUT = cumsum(value) - value) %>%
  ungroup()

原理:cumsum(value)会计算从组内第一行到当前行的value累积总和,减去当前行的value后,就得到了当前行之前所有行的value之和,完全匹配需求。

方法二:滞后累积和

library(dplyr)

pdata <- pdata %>%
  group_by(id) %>%
  mutate(OUTPUT = lag(cumsum(value), default = 0)) %>%
  ungroup()

原理:先计算组内value的累积和,再用lag()将结果向后偏移一行,同时给第一行设置default=0(因为没有更早的记录),最终得到目标输出。

运行任意一种方法后,查看前10行数据,会和你给出的期望结果一致:

pdata %>% slice(1:10)

内容的提问来源于stack exchange,提问作者arash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 16:10:33