[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