【问题标题】:How to remove row of data-frame based on duplicate date and ID如何根据重复的日期和 ID 删除数据框行
【发布时间】:2019-07-05 17:17:31
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 您可能需要ea2[!(duplicated(ea2[,c("PatientID", "SessionDate2")]|duplicated(ea2[,c("PatientID", "SessionDate2")], fromLast = TRUE),]

标签: r date duplicates


【解决方案1】:

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

不建议依赖传入的行顺序,因为它可以改变,尤其是pulling from a database

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

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

【讨论】:

    猜你喜欢
    • 2022-06-17
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多