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

在R中如何删除data.frame中与前一行指定列值重复的行

R 删除x列与前一行取值重复的相邻行

基础R实现

直接通过判断相邻值差值筛选行:

# 构造保留行的逻辑向量,第一行默认保留,后续行x值与前一行不同则保留
keep_rows <- c(TRUE, diff(df$x) != 0)
res <- df[keep_rows, ]

输出结果和你要求的预期完全一致:

row x     y
1   1 1  left
2   2 2  left
3   3 3 right
5   5 4 right
6   6 2 right

dplyr 实现

用lag()函数调取前一行x值对比筛选,语法更直观:

library(dplyr)
res <- df %>%
  # 第一行直接保留,其余行对比前一行x值
  filter(row_number() == 1 | x != lag(x))

你可以根据自己的使用习惯选择任意一种方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:24:03