'Finding YTD change in R

Hi I am trying to find the YTD change. YTD formula is (current month value/last month of previous year)-1. The result I would like to get is in column y.

For example, for Jan-20 is (20/100)-1 ; Feb-20 is (120/100)-1. Basically all values divide by Dec-19 which is the last month of year 2019.

And for Jan-21, it should be divided by Dec-20 value so its (100/210)-1.

  structure(list(date = structure(c(1575158400, 1577836800, 1580515200, 
  1583020800, 1585699200, 1588291200, 1590969600, 1593561600, 1596240000, 
  1598918400, 1601510400, 1604188800, 1606780800, 1609459200, 1612137600
  ), class = c("POSIXct", "POSIXt"), tzone = "UTC"), x = c(100, 
  20, 120, 90, 100, 40, 55, 70, 90, 120, 290, 100, 210, 100, 130
  ), y = c(NA, -0.8, 0.2, -0.1, 0, -0.6, -0.45, -0.3, -0.1, 0.2, 
  1.9, 0, 1.1, -0.523809523809524, -0.380952380952381)), class = "data.frame", row.names = 
  c(NA, -15L))



      date   x          y
2019-12-01 100         NA
2020-01-01  20 -0.8000000
2020-02-01 120  0.2000000
2020-03-01  90 -0.1000000
2020-04-01 100  0.0000000
2020-05-01  40 -0.6000000
2020-06-01  55 -0.4500000
2020-07-01  70 -0.3000000
2020-08-01  90 -0.1000000
2020-09-01 120  0.2000000
2020-10-01 290  1.9000000
2020-11-01 100  0.0000000
2020-12-01 210  1.1000000
2021-01-01 100 -0.5238095
2021-02-01 130 -0.3809524
r


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source