From martin.becker at mx.uni-saarland.de  Wed Dec 20 19:00:00 2006
From: martin.becker at mx.uni-saarland.de (Martin Becker)
Date: Wed, 20 Dec 2006 19:00:00 +0100
Subject: [Rd] Possible bug in cut.Date()
Message-ID: <45897A20.9030600@mx.uni-saarland.de>

Dear list,

I suppose that the behaviour of cut.Date() is not as intended for the 
case ' breaks="year" ' (in R 2.4.1 and previous versions):
The corresponding code fragment which defines the first breakpoint in 
this case reads:

        if (valid == 4) {
            start$mon <- 0
            incr <- 366
        }
 
So the month of the first breakpoint is set to January, but the day of 
month is not set to 1.
This leads to a strange behaviour, see the following example:

 > cut(as.Date(c("2000-01-17","2001-01-13","2001-01-20")),breaks="y")
[1] 2000-01-17 2000-01-17 2001-01-17
Levels: 2000-01-17 2001-01-17

I think, the code fragment above should better read:

        if (valid == 4) {
            start$mon <- 0
            start$mday <- 1
            incr <- 366
        }

(Of course, maybe there are reasons for the current behaviour which I am 
not aware of, and the current behaviour is as intended.)

Regards,

  Martin



[Rd] Possible bug in cut.Date()
Martin Becker