[R] Basic date time arithmetics operations

Duncan Murdoch dmurdoch at pair.com
Sun Apr 27 19:01:35 CEST 2003


On Sun, 27 Apr 2003 18:14:28 +0200, you wrote:

>Also for the function seq.dates (or seq.POSIXt), the 
>case for by="months" would be more useful if it takes
>the situation of the end of month into account. 
>For example,
>
>> seq(ISOdate(2002,1,31), by="months", length=3)
>
>"2002-01-31 13:00:00 CET" 
>"2002-03-03 13:00:00 CET" 
>"2002-03-31 13:00:00 CET"
>
>rather than
>
>"2002-01-31 13:00:00 CET" 
>"2002-02-28 13:00:00 CET" 
>"2002-03-31 13:00:00 CET"

I don't think that's a well-defined request.  What would you want from

 seq(ISOdate(2002,12,30), by="months", length=5)

Should it give February 27, since you asked for the day before the end
of the month?  What should it do in April?

I think the current behaviour is doing what it should doing.  If you
really want the last day of the month in three successive months, then
you should probably get a sequence of first days of months, and then
subtract a day from each.  Wish I could tell you how to do that!
Hopefully someone else will.

By the way, I noticed a typo in the help for difftime() (it was
missing an escape on one of the % signs, so the end of the line
disappeared), and I've committed a fix to R-patched.

Duncan Murdoch



More information about the R-help mailing list