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

R语言基于value值分组生成唯一ID:组号随value>1切换需求

解决方案

可以通过标记触发条件+累积求和的方式实现需求,核心思路是先标记所有value > 1的位置,再对标记结果做累积求和,最后加上初始组号1即可得到符合要求的分组:

library(dplyr)

df.1 <- data.frame(value = c(1, 1, 90, 1, 1, 32, 1, 1, 1))

df.2 <- df.1 %>%
  mutate(nr.group = cumsum(value > 1) + 1)

# 查看结果
df.2

运行后输出与预期一致:

value nr.group
1     1        1
2     1        1
3    90        2
4     1        2
5     1        2
6    32        3
7     1        3
8     1        3
9     1        3

为什么consecutive_id不适用?

consecutive_id()是根据连续相同的元素值生成组ID,会把每一段连续的1和单独的大数值都分成不同组,得到的结果是1,1,2,3,3,4,5,5,5,完全不符合你“遇到大于1的值才变更组号,后续1沿用当前组”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:52:20