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

在R中按ID分组,删除组内event与date均相同的重复行

你之前代码出错的原因:duplicated() 函数的第二个参数是用于指定不可比较的取值,不是用来传入第二个判断重复的字段,所以你的写法逻辑本身就不对,自然得不到预期结果。

以下是两种常用的正确实现方案:

方案1:基础R实现

直接指定需要判断重复的所有列,取非重复的行即可:

d2 <- d[!duplicated(d[, c("ID", "event", "date")]), ]

这个逻辑是只要三个字段的组合重复,就判定为重复行,只保留第一次出现的记录,刚好符合你的需求。

方案2:dplyr实现(更直观易读)

用dplyr专门用来去重的distinct()函数,代码语义更清晰:

library(dplyr)
d2 <- d %>% 
  distinct(ID, event, date, .keep_all = TRUE)

参数.keep_all = TRUE 表示保留数据框的所有列,不会只返回用于判断重复的三个字段。

两种方法得到的结果完全符合你给出的预期输出,可以直接使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:54:04