[Rd] seq improperly increments dates (PR#9120)

Kjetil Brinchmann Halvorsen kjetilbrinchmannhalvorsen at gmail.com
Fri Aug 4 17:58:00 CEST 2006


Duncan Murdoch wrote:
> On 8/4/2006 4:18 AM, Martin Maechler wrote:
>>>>>>> "Gabor" == Gabor Grothendieck <ggrothendieck at gmail.com>
>>>>>>>     on Thu, 3 Aug 2006 20:14:24 -0400 writes:
>>     Gabor> That's, in fact, the way seq.dates works in the chron package:
>>     Gabor> library(chron)
>>     Gabor> x <- chron("01/31/2006")
>>     Gabor> seq(x, by = "month", length = 2)   #  01/31/06 02/28/06
>>
>> Hmm, so, by "logic",
>> 2006-01-31 + 1month  |->  2006-02-28
>> 2006-01-30 + 1month  |->  2006-02-27 (?)
>> 2006-01-29 + 1month  |->  2006-02-26 (?)
>> 2006-01-28 + 1month  |->  2006-02-25  ????????
>>
>> I really don't like 'chron's behavior which seems much less
>> logical to me than what R does with the official "Date" objects :
>>
>>> options(width=88)
>>> for(d in 28:31) print(seq(as.Date(paste("2006-01", d, sep="-")), len = 6, by="1 month"))
>> [1] "2006-01-28" "2006-02-28" "2006-03-28" "2006-04-28" "2006-05-28" "2006-06-28"
>> [1] "2006-01-29" "2006-03-01" "2006-03-29" "2006-04-29" "2006-05-29" "2006-06-29"
>> [1] "2006-01-30" "2006-03-02" "2006-03-30" "2006-04-30" "2006-05-30" "2006-06-30"
>> [1] "2006-01-31" "2006-03-03" "2006-03-31" "2006-05-01" "2006-05-31" "2006-07-01"
>>
>> {which, BTW, *is* reproducible code; the bug report was only
>>  reproducible on the day it was posted because it sillily used
>>  Sys.date()}
> 
> I think the obvious solution here is to ask R Core to move the earth 
> slightly closer to the sun, so the year is exactly 360 days long, and 
> these problems don't arise.
> 
> Or perhaps exactly 372 days would be better; that would be further from 
> the sun and would also help with global warming.
> 
> Duncan Murdoch

I am afraid that moving the earty so far out to induce an ice age, so
I would please ask R-core to leave the earth alone!

Kjetil

> 
>>     Gabor> See the help desk article in R News 4/1 for more about the main
>>     Gabor> date classes.
>>
>>     Gabor> On 8/3/06, Ponzio, Stephen [CIB-LAVA] <stephen.ponzio at citigroup.com> wrote:
>>     >> You're right, it's tricky.
>>     >> 
>>     >> I guess I would expect Jan. 30 + 1 month = Feb. 28.
>>     >> 
>>     >> Of couse, then  Jan. 30 + 1 month = Jan. 28 + 1 month;
>>     >> I understand.
>>     >> 
>>     >> Being that "1 month" is imprecise in terms of number of days,
>>     >> this anomaly is preferable to skipping months (Jan. 30 + 1 month = March 2),
>>     >> in my opinion.
>>     >> 
>>     >> That is what I expected, anyway.
>>     >> 
>>     >> Thanks,
>>     >> Stephen
>>
>>    [.........]
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list