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

Reply via email to