[R] Strange Bug in R

David L Carlson dcarlson at tamu.edu
Tue Oct 6 15:31:55 CEST 2015


There is a simple way to get closer to how a floating point number is stored in R with dput():

> dput(min(dataset$gpa))
1.89999997615814
> dput(dataset$gpa[290])
1.89999997615814

So you can see, the minimum is not 1.9, just very close to 1.9.

-------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77840-4352

-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Rolf Turner
Sent: Tuesday, October 6, 2015 3:53 AM
To: Berend Hasselman
Cc: r-help at r-project.org; Neverstop
Subject: Re: [R] Strange Bug in R

On 06/10/15 21:28, Berend Hasselman wrote:
>
>> On 6 Oct 2015, at 09:24, Neverstop <neverstop at hotmail.it> wrote:
>>
>> Hi all.
>> I don't understand why R works this way:
>>> rm(list=ls())
>>> require(foreign)
>>> dataset <- read.dta("http://www.ats.ucla.edu/stat/data/ologit.dta")
>>> min(dataset$gpa)
>> [1] 1.9
>>> min(dataset$gpa)>=1.90
>> [1] FALSE
>>> min(dataset$gpa)>=1.9
>> [1] FALSE
>>> min(dataset$gpa)>1.89
>> [1] TRUE
>> Shouldn't I get 3 TRUEs?
>> Am I missing something?
>> Thank you.
>>
>>
>
> See R FAQ 7.31  in https://cran.r-project.org/doc/FAQ/R-FAQ.html
> It should provide clarification for your puzzlement.

Not really.  The problem is one of the precision to which a floating 
point number is *printed* rather than one of the way that floating point 
numbers are *calculated*.  Hence it is not an instance of the 
counter-intuitive nature of floating point arithmetic.  I.e. you could 
have numbers a and b that were calculated and stored to *infinite* 
precision, appear to be equal when printed to some default number of 
significant figures, but are not actually equal.

The problems are related and both involve having some understanding of 
floating point numbers, but they are not the same problem.

cheers,

Rolf Turner

-- 
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
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