[R] Number of Days Between Dates: Incorrect Results For Date Calucations.
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Tue Feb 21 17:36:21 CET 2006
<gerald.herbert at hubbardbreeders.com> writes:
> 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.
Nope. First, it depends on your timezone. Over here, they do actually
differ. However, a few weeks earlier, we have the similar phenomenon
> as.POSIXct("2004-03-29") - as.POSIXct("2004-02-27")
Time difference of 30.95833 days
> as.POSIXct("2004-03-28") - as.POSIXct("2004-02-27")
Time difference of 30 days
which is of course because March 28 was only 23 hours long which is in
turn because
> as.POSIXct("2004-03-28")
[1] "2004-03-28 CET"
> as.POSIXct("2004-03-29")
[1] "2004-03-29 CEST"
Get it?
> > 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 at 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
>
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list