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

R语言筛选Depth大于500前连续递增行的实现问题

R语言实现多组连续递增Depth序列提取方案

核心思路

先对所有严格连续递增的Depth行生成独立分组ID,再针对每个分组筛选出Depth首次超过500前的所有行,合并后即为符合要求的结果,同时天然避免重复Depth的统计问题。

实现代码

首先加载依赖包(仅需运行一次):

library(tidyverse)

核心处理代码:

newdf <- df %>%
  # 1. 计算当前行与上一行的Depth差值,首行默认差值为正,归为新组
  mutate(depth_diff = Depth - lag(Depth, default = -Inf),
         # 2. 差值<=0时生成新分组ID,保证每个组内的Depth都是严格连续递增
         group_id = cumsum(depth_diff <= 0)) %>%
  # 3. 按分组维度处理
  group_by(group_id) %>%
  # 4. 筛选分组内所有早于第一个Depth>500的行,无超500值的分组全保留
  filter(cumsum(Depth > 500) == 0) %>%
  # 5. 移除辅助列,还原原始数据结构
  ungroup() %>%
  select(-depth_diff, -group_id)

方案说明

  • 针对25万行数据完全适配,所有运算为向量式操作,运行效率高
  • 自动识别所有独立的连续递增序列,不会漏记多组短序列
  • 分组逻辑自动过滤了Depth重复、递减的行,无需额外做去重处理
  • 若需要严格排除同分组内的重复Depth,可在filter步骤前补充filter(depth_diff > 0)

内容的提问来源于stack exchange,提问作者Meg.abytes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:39:02