У меня есть две последовательности лет, обе увеличиваются с течением времени. данные записываются с шагом 5 лет. Иногда между годом и событием происходят (нет, если этого не происходит). Я хочу знать, в чем разница между годом и ближайшим предыдущим событием .
Вот мой пример:
year = seq(5,45, 5)
event = c(NA, 14,NA, NA, 29, NA, NA, NA, NA)
my.df <- data.frame(year,
event)
И ожидаемый результат:
year event difference
1 5 NA 0 # 0 as not previous data
2 10 14 0 # same
3 15 NA 1 # 1 because 15-14 = 1
4 20 NA 6 # 6 because 20-14 = 6
5 25 29 11 # 11 because 25-14 = 11
6 30 NA 1 # 1 because 30-29 as the closest, not 14 anymore
7 35 NA 6 # etc
8 40 NA 11
9 45 NA 16
Есть ли какой-нибудь способ автоматизировать это? Событие происходит более или менее случайно, поэтому я не могу просто использовать lag()