如何在行中找到多个条目的旧日期时间列?

时间:2017-02-10 04:47:41

标签: r datetime

下表中的同一ID有多个条目。除此之外,我只需要在TIME列中具有较旧日期的那一个并删除剩余的一个。

ID      TIME
1       1/20/2016
1       1/21/2016
1       1/19/2016
1       2/10/2016
2       1/18/2016
2       1/19/2016
2       1/17/2016
3       1/16/2016
3       1/17/2016

我需要一个如下所述的输出,

ID:1   1/19/2016
ID:2   1/17/2016
ID:3   1/16/2016

不需要确切的输出格式,但结果应匹配。

任何值得赞赏的帮助。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

可以使用dplyr包,按ID分组并过滤底部TIME值来实现。

例如:

df <- data.frame(ID = c(1, 1, 2, 2), TIME = c('2016-01-01', '2017-01-01', '2016-12-15', '2017-12-15'), stringsAsFactors = FALSE)
df$TIME <- as.Date(df$TIME)


require(dplyr)

df %>% group_by(ID) %>% top_n(n=-1, wt = TIME)`