[R] unexpected results in comparison (x == y)
    cls59 
    chuck at sharpsteen.net
       
    Thu Nov  5 03:57:28 CET 2009
    
    
  
Peter Tillmann wrote:
> 
> Dear readers of the list,
> 
> I have a problem a comparison of two data from a vector. The comparison
> yields FALSE but should be TRUE. I have checked for mode(), length() and
> attributes(). See the following code (R2.10.0):
> 
> *SNIP*
> 
>> ZZ[4]
> [1] 0.02
>> ZZ[5]
> [1] 0.02
>> ZZ[4] == ZZ[5]
> [1] FALSE
> 
> *SNIP*
> 
> 
This looks like a side effect of roundoff error due to the finite precision
of numbers stored by a computer.  There was a large discussion of this issue
on the list about two weeks ago, you could read the posts at: 
  http://old.nabble.com/Rounding-error-in-seq%28...%29-ts25686630.html
They may provide some insight.  The punchline is that:
  0.2 = 2 * (1/10)
And 1/10 is not representable as a form of:
  2^n
For some integer n. Therefore the number 0.2 cannot be represented exactly
in floating point arithmetic and so inconsistencies will occur-- as you just
observed.  It's one of those realities of computer science that always
catches us non-computer scientists by surprise.
Hope this helps!
-Charlie
-----
Charlie Sharpsteen
Undergraduate
Environmental Resources Engineering
Humboldt State University
-- 
View this message in context: http://old.nabble.com/unexpected-results-in-comparison-%28x-%3D%3D-y%29-tp26195749p26208361.html
Sent from the R help mailing list archive at Nabble.com.
    
    
More information about the R-help
mailing list