2016-03-15 3 views
0

У меня есть следующий фрейм данных, и я хочу рассчитать разницу во времени между самыми старыми и новейшими датами для каждого пользователя.Подмножество данных и вычисление разницы во времени

> data1 
     date user PC 
1 1/4/2010 BAC0081 PC1 
2 1/5/2010 BAC0081 PC2 
3 1/6/2010 BAC0081 PC3 
4 1/7/2010 BAC0081 PC4 
5 1/4/2010 BAC0082 PC5 
6 1/5/2010 BAC0082 PC6 
7 1/6/2010 BAC0082 PC7 
> 

Результаты, которых я ожидал бы;

BAC0081 3 дня

BAC0082 2 дней

Я не мог найти эффективный способ для выполнения этой функции. Может ли кто-нибудь предложить мне правильный способ сделать это.

Благодаря

ответ

0

если у вас есть столбец дата правильно отформатирован:

lapply(split(data1[, 1], data1[, 2]), function(x) range(x)[2] - range(x)[1]) 
+0

Большое спасибо за ваш ответ. Это отлично работает для меня. – Anna

Смежные вопросы