r - Substract years and days to a dataframe -


i need subtract 2 years , and add 1 day dates below. using package lubridate, able subtract dates regular years or leap years separately, need both @ same time.

df <- data.frame( servicedate = c('2010-02-28','2016-02-29'), stringsasfactors = f) df$servicedate <- as.date(df$servicedate, "%y-%m-%d")  library(lubridate)  df$twoyearsearlier <- ymd(df$servicedate) - years(2) + days(1) 

this code above

df servicedate twoyearsearlier 2010-02-28      2008-02-29 2016-02-29            <na> 

is there way calc days both @ same time?

this desired result:

df servicedate twoyearsearlier 2010-02-28      2008-02-29 2016-02-29      2014-03-01 

in excel use this

=date(year(aw2)-2,month(aw2),day(aw2)+1)

use duration years dyears

df$twoyearsearlier <- ymd(df$servicedate) - dyears(2) df #  servicedate twoyearsearlier #1  2010-02-28      2008-02-29 #2  2016-02-29      2014-03-01 

or said in comments, days:

df$twoyearsearlier <- df$servicedate - days(730) df #  servicedate twoyearsearlier #1  2010-02-28      2008-02-29 #2  2016-02-29      2014-03-01 

Comments