R语言如何按每25行间隔分组根据depth列值去除重复行
R语言实现按每25行分组后组内depth列去重
实现逻辑
- 给原始数据集新增分组标识,每25行自动划分到同一个分组
- 按分组标识拆分数据,在每个子组内独立执行去重操作
- 合并所有子组的去重结果,得到最终处理后的数据集
完整代码
首先确保你已经加载dplyr包,后续操作依赖该包:
library(dplyr) # 生成分组标识:每25行对应一个分组 df <- df %>% mutate(group_id = ceiling(row_number() / 25)) # 分组后组内按depth列去重,最终移除分组标识列 result <- df %>% group_by(group_id) %>% distinct(depth, .keep_all = TRUE) %>% ungroup() %>% select(-group_id)
代码说明
ceiling(row_number() / 25)是固定行间隔分组的核心逻辑:行号1-25对应分组id为1,行号26-50对应分组id为2,以此类推,若总行数不是25的整数倍,最后不足25行的部分也会自动作为独立分组处理group_by(group_id)会将数据按分组id拆分,后续distinct操作只会在组内执行,不会跨组去重- 处理完成后
ungroup取消分组状态,删除辅助用的group_id列,输出的result就是你需要的结果
内容的提问来源于stack exchange,提问作者linux_lover
相关产品推荐
相关产品推荐

