Hello!
I am trying to add values from last 10 years in a separate column.
Original data starts from 2012 - 2021 and I am interested in creating a column that has sum of Sales from previous 10 years. So, for values corresponding to year 2021, we need to add values from 2011 - 2020 and because we don't have value for 2011, we can consider value from 2012. Similarly, for values corresponding to year 2020, we need to add values from 2010 - 2019 and because we don't have values for 2011 & 2010, we can consider value from 2012 for both 2011 & 2010 and so on.
For this example, we can add values from previous 3 years Sales and fill in the empty values with the earliest years as above. So, for 2021, the new value in new column should be sum of values from 2020, 2019 & 2018. For 2020, the new value should be sum of values from 2019 & 2018 & 2018. For 2019, the new value should be sum of values from 2018, 2018 & 2018. The same goes for 2018 as we don't have any previous values.
Any other logic to fill in the gaps for years missing is very much welcome. The goal here is to be able to collect last 10 years' worth sales to be used for some other calculations.
I am not able to figure this out. Any help would be appreciated.
library(tidyverse)
library(lubridate)
vol <- data.frame(
Date = c("2018 Jan",
"2018 Feb","2018 Mar","2018 Apr","2018 May","2018 Jun",
"2018 Jul","2018 Aug","2018 Sep","2018 Oct","2018 Nov",
"2018 Dec","2019 Jan",
"2019 Feb","2019 Mar","2019 Apr","2019 May","2019 Jun",
"2019 Jul","2019 Aug","2019 Sep","2019 Oct","2019 Nov",
"2019 Dec","2020 Jan",
"2020 Feb","2020 Mar","2020 Apr","2020 May","2020 Jun",
"2020 Jul","2020 Aug","2020 Sep","2020 Oct","2020 Nov",
"2020 Dec", "2021 Jan",
"2021 Feb","2021 Mar","2021 Apr","2021 May","2021 Jun",
"2021 Jul","2021 Aug","2021 Sep","2021 Oct","2021 Nov",
"2021 Dec"),
Country = c("CA","CA","CA","CA","CA","CA","US","US","US","US","US","US",
"CA","CA","CA","CA","CA","CA","US","US","US","US","US","US",
"CA","CA","CA","CA","CA","CA","US","US","US","US","US","US",
"CA","CA","CA","CA","CA","CA","US","US","US","US","US","US")
)
Type = c("A", "B", "C", "D", "A", "B", "C", "D","A", "B", "C", "D",
"A", "B", "C", "D", "A", "B", "C", "D","A", "B", "C", "D",
"A", "B", "C", "D", "A", "B", "C", "D","A", "B", "C", "D",
"A", "B", "C", "D", "A", "B", "C", "D","A", "B", "C", "D"
)
Sales = c(100,110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210,
220, 230,240, 250, 260, 270, 280, 290, 300, 310, 320, 330,
340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450,
460, 470, 480, 490, 500, 510, 520, 530, 540, 550, 560, 570
)
vol$Date <- ym(vol$Date)
Thank you!