首页 > 解决方案 > 如何根据重复的日期和 ID 删除数据框行

问题描述

我正在尝试从我的数据框中删除一个错误的重复项,其中重复的行(例如下面的患者 ID 1 和 3)没有任何信息 (NA)。

需要删除的重复项总是首先出现在这对中,所以我正在考虑以某种方式使用该信息来删除它们。

已经简化了下面的数据以稍微减少问题(注意:我正在寻找一个可以在大型数据集中删除多个重复项而无需手动识别它们的函数):

单击此处获取模拟数据集

到目前为止,我一直在尝试处理以下代码:

test <- ea2[!duplicated(ea2[,c("PatientID", "SessionDate2")]),]

但这当然只是删除了患者 ID 1 和 3 的第二个重复行,我需要将其保留在数据集中。

标签: rdateduplicates

解决方案


需要删除的重复项总是首先出现在对中

不建议依赖传入的行顺序,因为它可能会发生变化,尤其是从数据库中提取时。

您能否删除包含无价值信息的行,然后使用您的duplicated()代码?如果是这样,我喜欢tidyr::drop_na()

ea2 <- tidyr::drop_na(ea2, PatientID)
ea2 <- tidyr::drop_na(ea2, SessionDate2)

推荐阅读