Впервые спрашиваю здесь:
У меня есть данные с датами и людьми, которые представляют события. Я хочу найти способ подсчитать, сколько раз человек был вовлечен ранее. Поэтому я хочу, чтобы данные выглядели так:
df <- data.frame(date = seq(ymd('2018-01-01'),ymd('2018-01-10'), by = '1 day'),
id = c(1, 2, 3, 4, 3, 5, 2, 2, 1, 4),
# how many previous times has this id been seen?
count_before = c(0, 0, 0, 0, 1, 0, 2, 1, 1, 1))
df
date person_id count_before
1 2018-01-01 1. 0.
2 2018-01-02 2. 0.
3 2018-01-03 3. 0.
4 2018-01-04 4. 0.
5 2018-01-05 3. 1.
6 2018-01-06 5. 0.
7 2018-01-07 2. 1.
8 2018-01-08 2. 2.
9 2018-01-09 1. 1.
10 2018-01-10 4. 1.
У меня нет опыта работы по строкам в R (возможно, ответ sapply?), Но продумать эту проблему с помощью dplyr summaze и group_by пока не удалось.
Редактировать : исправлено несоответствие в ожидаемом результате.