мой фрейм данных выглядит так:
dataframe <- read.table(text="
id send paid
1 2013-01-25 NA
2 2013-02-21 2013-02-23
2 2013-02-21 2013-02-25
2 2013-02-21 2013-02-28
3 2013-03-01 2013-03-02
3 2013-03-01 2013-03-03
4 2013-06-23 2013-05-03
", header=TRUE)
Что я хотел бы сделать, это создать новый результат столбца в dplyr
для каждого id
, который будет считать строки выше, где разница между send для фактических id
и paid
дат выше этой id
равна менее 120 дней.
Другими словами, нет строки выше для id
1, поэтому результат будет 0, result
для id
2 должен быть 0, поскольку значение выше NA
. Результат для id
3 будет равен 3, поскольку разница между 2013-03-01
и (2013-02-23
, 2013-02-25
, 2013-02-28
) составляет менее 120 дней. Результат для id
4 должен быть равен 4, поскольку разница между 2013-06-23
составляет менее 120 дней для дат (2013-03-03
, 2013-03-02
, 2013-02-28
, 2013-02-25
).
result <- read.table(text="
id send paid result
1 2013-01-25 NA 0
2 2013-02-21 2013-02-23 0
2 2013-02-21 2013-02-25 0
2 2013-02-21 2013-02-28 0
3 2013-03-01 2013-03-02 3
3 2013-03-01 2013-03-03 3
4 2013-06-23 2013-05-03 4
", header=TRUE)