在R中按行选择最近的日期

时间:2015-09-09 15:15:53

标签: r subset

我有一个问题,我已经减少到以下任务。对于具有ID和日期的数据框;

set.seed(123)
myids <- sample(c('a001', 'a002', 'a003'), 12, replace = TRUE)
mydates <- as.Date(sample(c("2007-06-22", "2004-02-13", "2007-05-22", "2001-10-10", "2008-05-05", "2004-02-15"), 12, replace = TRUE))
mydf <- data.frame(myids, mydates)

我需要为每个主题选择最近日期的行。结果应该是:

a001    5/5/08
a002    5/5/08
a003    2/15/04

任何人都知道怎么做?

1 个答案:

答案 0 :(得分:5)

这是一个data.table解决方案。

library(data.table)
setDT(mydf)[,.SD[which.max(mydates)],keyby=myids]
#    myids    mydates
# 1:  a001 2008-05-05
# 2:  a002 2008-05-05
# 3:  a003 2004-02-15