Simple addition and subtraction works as well: as.Date("1995/12/01",format="%Y/%m/%d") + 30 If you have datetime values you can use strptime("1995-12-01 08:00:00",format="%Y-%m-%d %H:%M:%S") + 30*24*3600 where 30*24*3600 = 30 days expressed in seconds.
> -----Original Message----- > From: Marc Schwartz [mailto:[EMAIL PROTECTED] > Sent: Tuesday, October 11, 2005 10:16 PM > To: t c > Cc: r-help@stat.math.ethz.ch > Subject: Re: [R] adding 1 month to a date > > > On Tue, 2005-10-11 at 16:26 -0700, t c wrote: > > Within an R dataset, I have a date field called date_. > (The dates are > > in the format YYYY-MM-DD, e.g. 1995-12-01.) > > > How can I add or subtract 1 month from this date, to get > 1996-01-01 or > > 1995-11-01. > > There might be an easier way to do this, but using seq.Date(), you can > increment or decrement from a Time 0 by months: > > Add 1 month: > > This takes your Time 0, generates a 2 element sequence (which begins > with Time 0) and then takes the second element: > > > seq(as.Date("1995-12-01"), by = "month", length = 2)[2] > [1] "1996-01-01" > > > > Subtract 1 month: > > Same as above, but we use 'by = "-1 month"' and take the > second element: > > > seq(as.Date("1995-12-01"), by = "-1 month", length = 2)[2] > [1] "1995-11-01" > > > See ?as.Date and ?seq.Date for more information. The former > function is > used to convert from a character vector to a Date class object. Note > that in your case, the date format is consistent with the default. Pay > attention to the 'format' argument in as.Date() if your dates > should be > in other formats. > > HTH, > > Marc Schwartz > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html