[R] Wrong computation of time differenze in POSIXct - additional digits
peter dalgaard
pdalgd at gmail.com
Fri Jun 15 23:08:04 CEST 2012
On Jun 15, 2012, at 20:33 , Rui Barradas wrote:
> 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
>
Yes. There are only about 16 significant digits in (64 bit) floating point. One further point is that times are stored internally as seconds since Jan 1 1970, of which there has been quite a few by now:
> unclass(Sys.time())
[1] 1339793894
with already 10 digits before the decimal point, you can only expect fractional seconds to be accurate to about 6 digits.
-pd
> 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.
>
> ______________________________________________
> 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.
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-help
mailing list