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

如何在R语言中按组统计列中指定值的累计出现次数?偏好dplyr方案

解决方案(dplyr实现)

可以通过按id分组后,结合cumsum()和简单数值运算实现需求,代码如下:

library(dplyr)

df <- data.frame(id = c("1", "1", "1", "1", "2", "2", "2"), 
                 x = c(0, 1, 0, 1, 0, 1, 0))

result <- df %>%
  group_by(id) %>%
  mutate(count = cumsum(x) * x) %>%
  ungroup()

print(result)

代码说明

  • group_by(id):将数据按id分组,确保累计统计仅在单个id范围内进行,不会跨id计算
  • mutate(count = cumsum(x) * x):
    • cumsum(x)逐行计算当前及之前所有行中x=1的累计出现次数
    • 乘以x后,x=0的行结果自动转为0,x=1的行保留累计次数,完全匹配需求输出格式
  • ungroup():取消分组状态,避免后续操作受分组限制(若后续无需分组操作可省略)

运行后输出结果:

# A tibble: 7 × 3
  id        x count
  <chr> <dbl> <dbl>
1 1         0     0
2 1         1     1
3 1         0     0
4 1         1     2
5 2         0     0
6 2         1     1
7 2         0     0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:12:35