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

R中按行连续数值对data frame进行分组的实现方法

R 按连续数值列生成分组列的实现方法

首先构造示例数据:

library(tidyverse)
df <- tibble(time = c(1,2,3,4,5,10,11,20,30,31,32,40))

tidyverse 实现方案

核心逻辑是计算相邻行的数值差,差值不等于1的位置即为新分组的起点,累加标识即可得到分组编号:

df <- df %>%
  mutate(group = cumsum(c(1, diff(time) != 1)))

base R 实现方案

逻辑和tidyverse方案一致,直接对列操作即可:

df$group <- cumsum(c(1, diff(df$time) != 1))

两种方法得到的结果完全符合需求,输出如下:

# A tibble: 12 × 2
    time group
   <dbl> <dbl>
 1     1     1
 2     2     1
 3     3     1
 4     4     1
 5     5     1
 6    10     2
 7    11     2
 8    20     3
 9    30     4
10    31     4
11    32     4
12    40     5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:39:02