У меня есть кадр данных, который выглядит следующим образом:R - количество дней с момента последнего появления
id date
1001 2012-10-11
1005 2013-02-20
1005 2012-11-21
1005 2014-03-14
1003 2013-10-25
1003 2013-11-30
Мне нужно найти для каждой строки, количество дней, прошедших с момента последнего появления, что Я бы. Для приведенного выше примера, ответ будет выглядеть следующим образом:
id date no_of_days
1001 2012-10-11 NA
1005 2013-02-20 91
1005 2012-11-21 NA
1005 2014-03-14 387
1003 2013-10-25 NA
1003 2013-11-30 36
недолгих поисков у меня до точки, где я могу добавить новый столбец со значениями, которые были созданы с помощью применения функции на подгруппы (R эквивалент из Ststa-х bysort
):
df$no_of_days<-with(df,ave(id,id,FUN=days_passed,na.rm=TRUE))
Однако определить новую функцию days_passed, оказывается сложно, как я должен найти последнее вхождение этого uniqid, а затем сформулировать функцию соответственно.
Я новичок в R, поэтому любая помощь на этом была бы весьма признательна.
Это хороший вопрос о программировании R, но, похоже, не имеет статистического аспекта - это кандидат на переход к SO? – Silverfish