R: агрегировать по идентификатору и найти мин. Дату и время - PullRequest
2 голосов
/ 08 марта 2012

Я начинающий 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 

И мне нужно сгенерировать уникальную запись для каждого идентификатора с минимальной датой и минимальным временем.

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

безрезультатно.

Любая помощь будет принята с благодарностью.Спасибо

1 Ответ

5 голосов
/ 08 марта 2012

Если столбцы «Данные» и «Время» относятся к классу «символ» или к любому другому классу, для которого существует метод 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)) )
...