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

Rui Barradas ruipbarradas at sapo.pt
Fri Jun 15 20:33:14 CEST 2012


Hello,

A classic of floating-point accuracy is

 > 3/5 - 3/5
[1] 0
 > 3/5 - (2/5 + 1/5)
[1] -1.110223e-16
 > 3/5 - 2/5 - 1/5
[1] -5.551115e-17

Rui Barradas

Em 15-06-2012 18:18, David Winsemius escreveu:
>
> 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
>
> ______________________________________________
> 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.



More information about the R-help mailing list