[Rd] Logic Error (PR#8677)

Duncan Murdoch murdoch at stats.uwo.ca
Mon Mar 13 00:48:23 CET 2006


On 3/12/2006 6:39 PM, mkdavis at math.ucalgary.ca wrote:
> Full_Name: Matthew Davis
> Version: 2.2.0
> OS: OS X (10.4.5)
> Submission from: (NULL) (209.107.120.195)
> 
> 
> the mean of my sample x is 0.2, and when I check mean(x)<=0.2 I get a TRUE
> value, when I check mean(x)<=(1-0.8) I get a FALSE value.  (x <- c(0, 1, 0, 0,
> 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0))

Why make this so complicated?  The natural conclusion from that is that 
0.2 is not equal to (1-0.8), and indeed:

 > (1-0.8) == 0.2
[1] FALSE

The problem is that neither 0.2 nor 0.8 can be represented exactly, so 
when you do calculations using them you are doing approximations.  The 
approximation involving your mean is different than the one involving 
(1-0.8).  This is an FAQ,

7.31 Why doesn't R think these numbers are equal?

This is not a bug.

Duncan Murdoch



More information about the R-devel mailing list