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

如何移除R数据框中X与Y坐标组合重复的行?

在R中移除数据框里X和Y坐标组合重复的行

我们需要移除R数据框中X与Y坐标组合重复的行——只有当某一行的X和Y值同时和另一行完全相同时,才判定为重复行(比如示例里X=-1.52出现两次,但对应的Y值不同,所以这两行都保留)。另外注意原始数据集的X、Y值小数位数可能超过2位,判断重复时要基于原始数值。

示例数据

df <- structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 
                     X = c(-1.01, -1.11, -1.11, -2.13, -2.13, -1.52, -1.52, -1.98, -3.69, -4.79), 
                     Y = c(2.11, 3.33, 3.33, 6.66, 6.66, 7.77, 8.88, 9.99, 1.11, 6.68)), 
                class = "data.frame", row.names = c(NA, -10L))

解决方法

方法1:使用Base R的duplicated()函数

直接基于X和Y列判断重复,保留首次出现的行:

# 保留X+Y组合不重复的行,保留首次出现的记录
df_unique <- df[!duplicated(df[c("X", "Y")]), ]

方法2:使用dplyr包的distinct()函数

如果习惯tidyverse风格,可以用dplyr的distinct,指定按X和Y去重,同时保留所有列:

library(dplyr)
df_unique <- df %>% distinct(X, Y, .keep_all = TRUE)

处理后的期望结果

id     X     Y
1  -1.01  2.11
2  -1.11  3.33
4  -2.13  6.66
6  -1.52  7.77
7  -1.52  8.88
8  -1.98  9.99
9  -3.69  1.11
10 -4.79  6.68

(注:原期望结果中id=19为笔误,原数据对应id为10)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:45:24