[R] ignoring zeros or converting to NA

Thomas Lumley tlumley at u.washington.edu
Wed Aug 13 17:47:11 CEST 2008


Integers (up to a fairly high limit) are represented exactly, as are fractions whose denominator is a power of two (again up to a fairly high limit), so x==0 is fine in that sense.

If x is computed by floating point operations you do have to worry whether these are exact, eg, with
   x<-seq(-1,1,length=7)
it is not clear that the fourth element will be exactly zero.

     -thomas


On Wed, 13 Aug 2008, Roland Rau wrote:

> Hi,
>
> since many suggestions are following the form of
> x[x==0] (or similar)
> I would like to ask if this is really recommended?
> What I have learned (the hard way) is that one should not test for equality of 
> floating point numbers (which is the default for R's numeric values, right?) 
> since the binary representation of these (decimal) floating point numbers is 
> not necessarily exact (with the classic example of decimal 0.1).
> Is it okay in this case for the value zero where all binary elements are zero? 
> Or does R somehow recognize that it is an integer?
>
> Just some questions out of curiosity.
>
> Thank you,
> Roland
>
>
> rcoder wrote:
>> Hi everyone,
>> 
>> I have a matrix that has a combination of zeros and NAs. When I perform
>> certain calculations on the matrix, the zeros generate "Inf" values. Is
>> there a way to either convert the zeros in the matrix to NAs, or only
>> perform the calculations if not zero (i.e. like using something similar to
>> an !all(is.na() construct)?
>> 
>> Thanks,
>> 
>> rcoder
>
> ______________________________________________
> 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.
>

Thomas Lumley			Assoc. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle



More information about the R-help mailing list