下表中的同一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
不需要确切的输出格式,但结果应匹配。
任何值得赞赏的帮助。 提前谢谢。
答案 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)`