[Rd] Logic Error (PR#8677)

Duncan Murdoch murdoch at stats.uwo.ca
Mon Mar 13 01:23:52 CET 2006


On 3/12/2006 7:08 PM, Janusz Kawczak wrote:
> However, mean(x)==0.2 returns TRUE
> Also, mean(x)>=(1-0.8) returns TRUE ;)
> 
> So, it's not just the approximation calculus.

I don't get your point.  On my computer,

 > 1-0.8 < 0.2
[1] TRUE

which is consistent with what I wrote below and what you write above. 
mean(x) comes out to the same approximation as the constant 0.2 uses, 
but 1-0.8 doesn't, it comes out smaller.

Duncan Murdoch

> 
> On Sun, 12 Mar 2006, Duncan Murdoch wrote:
> 
>> 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
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>



More information about the R-devel mailing list