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

如何在分组DataFrame中筛选存在重复日期变量的行

解决分组内重复日期行的筛选问题

原代码的问题在于duplicated(med_dt)仅会标记每组中第二次及以后出现的重复日期行,所以筛选后只保留了重复项的后续行,而非所有属于重复日期的行。

方法一:双向标记重复项

使用duplicated()的双向判断,既标记从前往后的重复项,也标记从后往前的重复项,两者取并集就能得到所有重复日期的行:

df2 <- df %>% 
  group_by(studynr) %>% 
  filter(duplicated(med_dt) | duplicated(med_dt, fromLast = TRUE)) %>%
  ungroup()  # 按需取消分组

方法二:先统计日期出现次数再筛选

先按studynr和med_dt分组统计出现次数,再筛选出次数大于1的日期对应的所有行:

df2 <- df %>%
  group_by(studynr, med_dt) %>%
  mutate(date_count = n()) %>%
  ungroup() %>%
  filter(date_count > 1) %>%
  select(-date_count)  # 按需移除统计列

这两种方法都能实现需求:提取每个studynr分组中,所有对应med_dt存在重复的行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:57:07