2012-03-08 67 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