根据日期字段和另一个字段删除 R 数据框中的重复行

标签 r date dataframe duplicates

R 新手,但学习处理 db 数据并碰壁。

我想根据两个条件从表中删除重复的行/观察:用户 ID 字段和日期字段,指示上次更改用户的时间,即最近的日期行。

我的截断数据集如下所示:

UID    | DateLastChange
1      |  01/01/2016
1      |  01/03/2016
2      |  01/14/2015
3      |  02/15/2014
3      |  03/15/2016

我想结束:
UID    | DateLastChange
1      |  01/03/2016
2      |  01/14/2015
3      |  03/15/2016

我曾尝试使用重复的或独特的,但它们似乎并没有完全接受选择性的能力。我可以设想构建一个具有唯一 UID 的新表的可能性,然后以某种方式离开连接以仅匹配最近的日期。

任何建议将不胜感激。
斯科特

最佳答案

我们可以使用 data.table

library(data.table)
setDT(df1)[order(UID, -as.IDate(DateLastChange, "%m/%d/%Y")), head(.SD, 1), by = UID]
#     UID DateLastChange
#1:   1     01/03/2016
#2:   2     01/14/2015
#3:   3     03/15/2016

或使用 duplicated
setDT(df1)[order(UID, -as.IDate(DateLastChange, "%m/%d/%Y"))][!duplicated(UID)]

关于根据日期字段和另一个字段删除 R 数据框中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41455746/

相关文章:

r - 具有二进制变量的 Pivot_longer

python - 如何将日期时间值更改为单独格式化的值

Javascript 从 toLocaleDateString 解析已知语言环境的日期

java - 以线程安全方式格式化日期抛出 java.text.ParseException :

python - 获取每列中的第一个出现值

r - 将单变量时间序列转化为 R 中的训练和测试拆分

list - l_ply : how to pass the list's name attribute into the function?

r - 以累积方式在数据帧列表中建立一个值

python - 在python中的字符串列表中用数字分隔值

python - 本地化并更改 pandas 数据框中的日期