У меня есть df, который выглядит примерно так:
year <- c(2000,2000,2000,2002,2002,2002,2003,2003,2003,2006,2006,2006)
type <- c("A","B","C","A","B","C","A","B","C","A","B","C")
value <- c(71,80,99,79,61,62,56,88,50,85,56,85)
df <- data.frame(year, type, value)
rm(year, type, value)
Я пытаюсь сделать такой график:
, которые указывают для каждой группы (A, B, C) изменение (%) по сравнению с предыдущим годом.Проблема заключается в том, что иногда предшествующий год равен -1, иногда -2 или -3 и т. Д.
year type value lag %
2000 A 71
2000 B 80
2000 C 99
2002 A 79 8 0,112676056
2002 B 61 -19 -0,2375
2002 C 62 -37 -0,373737374
2003 A 56 -23 -0,291139241
2003 B 88 27 0,442622951
2003 C 50 -12 -0,193548387
2006 A 85 29 0,517857143
2006 B 56 -32 -0,363636364
2006 C 85 35 0,7
Мой вопрос разделен на 2:
как правильно рассчитать значение задержки?
Есть ли быстрый способ рассчитать% изменения по сравнению с предыдущим годом как ref?