I have a date in R, e.g.
dt = as.Date('2010/03/17');
I would like to subtract 2 years from this date, without worrying about leap years and such issues, getting as.Date('2010-03-17')
. How would I do that? Thanks!
I have a date in R, e.g.
dt = as.Date('2010/03/17');
I would like to subtract 2 years from this date, without worrying about leap years and such issues, getting as.Date('2010-03-17')
. How would I do that? Thanks!
The easiest thing to do is to convert it into POSIXlt and subtract 2 from the years slot.
> d <- as.POSIXlt(as.Date('2010/03/17'))
> d$year <- d$year-2
> as.Date(d)
[1] "2008-03-17"
See this related question: http://stackoverflow.com/questions/2254986/how-to-subtract-days-in-r.
You could use seq
:
R> dt = as.Date('2010/03/17')
R> seq(dt, length=2, by="-2 years")[2]
[1] "2008-03-17"