[R] Number of Days Between Dates: Incorrect Results For Date Calucations.
gerald.herbert@hubbardbreeders.com
gerald.herbert at hubbardbreeders.com
Tue Feb 21 16:48:28 CET 2006
In some cases, incorrect results are produced by the code below intended to
calculate the number of days between 2 dates. The year in question was a
leap year.
Note the results for 2004-04-04 and 2004-04-05 are the same! They should be
37 and 38 respectively.
> as.integer(as.POSIXct("2004-04-02") - as.POSIXct("2004-02-27"))
[1] 35
> as.integer(as.POSIXct("2004-04-03") - as.POSIXct("2004-02-27"))
[1] 36
> as.integer(as.POSIXct("2004-04-04") - as.POSIXct("2004-02-27"))
[1] 37
> as.integer(as.POSIXct("2004-04-05") - as.POSIXct("2004-02-27"))
[1] 37
> as.integer(as.POSIXct("2004-04-06") - as.POSIXct("2004-02-27"))
[1] 38
> as.integer(difftime(as.POSIXct("2004-04-06"),
as.POSIXct("2004-02-27"),units="days"))
[1] 38
> as.integer(difftime(as.POSIXct("2004-04-04"),
as.POSIXct("2004-02-27"),units="days"))
[1] 37
> as.integer(difftime(as.POSIXct("2004-04-05"),
as.POSIXct("2004-02-27"),units="days"))
[1] 37
It appears that difftime() and "-" are producing invalid results.
Regards,
Gerald Herbert
More information about the R-help
mailing list