[R] Wrong computation of time differenze in POSIXct - additional digits

David Winsemius dwinsemius at comcast.net
Fri Jun 15 19:18:06 CEST 2012


On Jun 15, 2012, at 12:49 PM, Julia wrote:

> Hello,
>
> I wanted to compute the time differenze between to times:
>
> first =as.POSIXct( "2012-06-15 16:32:39.0025 CEST")
> second  = as.POSIXct("2012-06-15 16:32:39.0086 CEST")
> second - first
>
> The result is
> Time difference of 0.006099939 secs
>
> instead of just 0.0061 secs
> So R adds aditional  numbers after the result.

It's a floating point representation issue.  You don't really want to  
change that value, but are asking to see something different:

 > round ( second - first, 4)
Time difference of 0.0061 secs

> I know I could round it in this case.
> But I am working with a large data set and need to always get the
> correct result.
>
> difftime() does not work correct either.
>
> Has anybody a suggestion how to get the correct result?

Use a computer system that runs on exact arithmetic?

Read FAQ 7.31
http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f

(And expect to read about 4-6 similar messages in the next hour.)

>
> Thank you
> Julia
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list