2012-03-08 63 views
1

我是R初学者,遇到以下非常简单的问题; 我有以下的交易数据:R:通过ID汇总并找到最小日期和时间

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) 

无济于事。

任何援助将不胜感激。 感谢

+0

您应该发布str(Data)或dput(Data)。因此,那些专栏的含糊不清将阻止提供一个坚实的答案。 – 2012-03-08 13:13:03

+0

加上一个准确的标题 – mdsumner 2012-03-08 13:30:39

回答

4

如果数据和时间列班“人物”或其他任何类其中有一个min方法(但并不特别,如果任何一个是类“因素),你可以使用这个:

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))) 
+0

感谢您的迅速答复德文,日期和时间是类的“因素”,但用as.character转换和你的代码完美工作 - 感谢磨坊,为ameature后道歉:) – 2012-03-08 16:01:38