【发布时间】:2020-11-05 12:50:22
【问题描述】:
我生成了“withrepeats”一个 df,其中的行在另一个 df 中至少有一个重复项(可变 DROPS 作为每个唯一 FID+ID 的重复次数)。
FID ID CID CT DROPS DATE
123 CV 1 2 3 11-3-2020
123 CV 2 2 2 11-3-2020
123 CV 3 1 1 11-3-2020
456 LO 1 1 2 10-4-2020
456 LO 2 1 1 10-5-2020
678 IP 1 2 3 11-1-2020
678 IP 1 1 2 11-2-2020
678 IP 2 2 1 10-29-2020
111 AK 1 2 2 11-2-2020
111 AK 2 2 1 11-1-2020
222 PL 4 2 2 11-1-2020
222 PL 3 2 2 11-1-2020
我想只提取每个唯一 ID 和 FID 的掉落物之一,并保持最新的 DATE。对于 CT == 1 的行,我只想保留该行并保留最新日期。对于那些只有 CT== 2 值的行,也要保留最新日期。这是我正在使用的代码行:
keepers <- withrepeats %>% group_by %>% (ID, FID) %>% filter(DATE == max(DATE))
但是,具有相同日期的行将被保留。在这种情况下,我想保留最高的 CID ,或者,如果有 CT == 1 的行,则保留该行。
期望的输出:
FID ID CID CT DROPS DATE
123 CV 3 1 1 11-3-2020
456 LO 2 1 1 10-5-2020
678 IP 1 1 2 11-2-2020
111 AK 1 2 2 11-2-2020
222 PL 4 2 2 11-1-2020
你会怎么做呢?任何帮助将不胜感激!
【问题讨论】:
-
预期输出是否正确
-
我更新了 df 和输出。感谢您的耐心等待。
标签: r dplyr duplicates data-wrangling