Я застрял с вопросом, который лучше всего проиллюстрировать на примере набора данных:
> head(posts, 11)
userId postId post.time post.freq
1 JON 100000000000 2016-12-06 1
2 JOSH 100000000001 2017-04-29 1
3 JIMBO 100000000002 2018-08-24 1
4 JAMIE 100000000003 2017-01-29 1
5 JANETTE 100000000004 2018-01-17 1
6 BEN 100000000005 2017-05-03 6
7 BEN 100000000006 2017-01-21 6
8 BEN 100000000007 2017-01-24 6
9 BEN 100000000008 2017-01-23 6
10 BEN 100000000009 2017-01-22 6
11 BEN 100000000010 2018-07-03 6
В этом наборе данных Я хочу рассчитать разницу во времени между двумя сообщениями для одного и того же идентификатора пользователя .Например, пользователь "BEN" имеет 6 сообщений (как указывает post.freq), его первое сообщение было создано в 2017-01-21, а второе - 2017-01-22;разница во времени между этими двумя составляет 1 день.Для «BEN» разница во времени между его вторым и третьим постом снова составит 1 день (2017-01-22 и 2017-01-23) и т. Д .;в то время как разница во времени его нулевого и первого поста составляет NA.
Результат должен выглядеть примерно так:
> head(posts, 11)
userId postId post.time post.freq post.timediff
1 JON 100000000000 2016-12-06 1 NA
2 JOSH 100000000001 2017-04-29 1 NA
3 JIMBO 100000000002 2018-08-24 1 NA
4 JAMIE 100000000003 2017-01-29 1 NA
5 JANETTE 100000000004 2018-01-17 1 NA
6 BEN 100000000005 2017-05-03 6 99
7 BEN 100000000006 2017-01-21 6 NA
8 BEN 100000000007 2017-01-24 6 1
9 BEN 100000000008 2017-01-23 6 1
10 BEN 100000000009 2017-01-22 6 1
11 BEN 100000000010 2018-07-03 6 304
Я не мог понять, как это сделать.Кто-нибудь может мне помочь?
Заранее спасибо!