R:按ID聚合并查找最小日期和时间

时间:2012-03-08 13:07:37

标签: r date time unique aggregate

我是R初学者并且遇到以下非常简单的问题; 我有以下交易数据:

Data
Row#ID     Lable    Date          Time
4   15275   John    2000-05-16    16:15:00
7   15275   John    2000-05-16    16:25:00
22  15276   Bob     2000-07-04    18:05:00
25  15276   Bob     2000-08-07    05:23:00
10  1234    Kate    2000-06-17    18:07:00
13  1234    Kate    2000-06-21    06:49:00 

需要为每个ID生成一个具有最小日期和最短时间的唯一条目, 与此类似:

Row#    ID          Lable   Date        Time
        15275   John        2000-05-16  16:15:00
        15276   Bob         2000-07-04  18:05:00
        1234    Kate        2000-06-17  18:07:00

我试过了

unique<-aggregate(Date$Date ,list(Data$ID, Data$Time,unique_Data$Lable ), min)

无济于事。

非常感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:5)

如果“数据”和“时间”列属于“字符”类或任何其他具有min方法的类(但特别是如果其中任何一个属于类“因子”,则可以使用此方法:< / p>

mins <-aggregate(Data[ , c("Date", "Time")]  ,list(Data$ID) , min)
mins

注意到需要涵盖类==“因素”问题,这甚至可以涵盖这种可能性;

mins <-aggregate(Data[ , c("Date", "Time")]  ,list(Data$ID) , 
                             function(x) min(as.character(x)) )