[R] Number of Days Between Dates: Incorrect Results For Date Calucations.

From: <gerald.herbert_at_hubbardbreeders.com>
Date: Wed 22 Feb 2006 - 02:48:28 EST


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



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Feb 22 02:57:11 2006

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:42:38 EST