R:dataframe根据第一个时间戳选择每个ID的最大行

R:dataframe根据第一个时间戳选择每个ID的最大行,r,distinct-values,R,Distinct Values,我有一个数据框,其中包含有时间戳的记录。 下面的玩具示例包含一个ID,它基于两个不同的时间戳附加了两条SMS。实际上,将会有数千个ID,每个ID都有将近80-100条短信类型和日期 toydf <- data.frame(ID = c(1045937900, 1045937900), SMS.Type = c("DF1", "WCB14"), SMS.Date = c("12/02/2015 19:51",

我有一个数据框,其中包含有时间戳的记录。 下面的玩具示例包含一个ID,它基于两个不同的时间戳附加了两条SMS。实际上,将会有数千个ID,每个ID都有将近80-100条短信类型和日期

toydf <- data.frame(ID = c(1045937900, 1045937900), 
                    SMS.Type = c("DF1", "WCB14"), 
                    SMS.Date = c("12/02/2015 19:51", "13/02/2015 08:38"))
toydf试试看

或使用
data.table

library(data.table)
toydf$SMS.Date <- as.POSIXct(toydf$SMS.Date, format='%d/%m/%Y %H:%M')
setkey(setDT(toydf), ID, SMS.Date)[, .SD[.N], ID]
库(data.table)

toydf$SMS.Date感谢@akrun为您提供的帮助help@JohnSmith很高兴知道这有帮助。使用
.I
会比使用
data.table
更快一些。出于测试目的,至少发布6-10行代码总是好的
library(data.table)
toydf$SMS.Date <- as.POSIXct(toydf$SMS.Date, format='%d/%m/%Y %H:%M')
setkey(setDT(toydf), ID, SMS.Date)[, .SD[.N], ID]