我有一个问题,我已经减少到以下任务。对于具有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
任何人都知道怎么做?
答案 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