Hi: If I remember correctly, I think I gave you something like mat[mat == 0]<-NA. I think what you're doing below is pretty different from that but I may not be understanding what you want ? Let me know if I can clarify more because my intention was not to guide you into doing below. Looping is generally not a good idea in R and often unnecessary. If you send me whatever I sent you, maybe I can fix it up for what
you want.

On Wed, Aug 13, 2008 at  4:39 PM, rcoder wrote:

Thank you for all your replies.

Borrowing an alternative solution kindly provided by Mark Leeds, I am using a conditional statement to pass non-zero values to a holding matrix that has
cells initially set to NA. The code is as follows:

##Code Start
mat_zeroless<-matrix(NA,5000,2000)   #generating holding matrix
for (j in 1:5000)
        {
for (k in 1:2000)
{
if(mat[j,k]!=0) {mat_zeroless[j,k]<-mat[j,k]}
}
        }
##Code End

Problems arise when the algorithm encounters NAs. Numbers are passed to the holding matrix, and zeros not, but when an NA is encountered, the following
error is generated:

Error in if mat[j,k] !=0 { :missing value where TRUE/FALSE needed

I'm not sure how to resolve this.

Thanks,

rcoder




Henrik Bengtsson (max 7Mb) wrote:

FYI,

there is an isZero() in the R.utils package that allows you to specify
the precision.  It looks like this:

isZero <- function (x, neps=1, eps=.Machine$double.eps, ...) {
  (abs(x) < neps*eps);
}

/Henrik

On Wed, Aug 13, 2008 at 8:23 AM, Roland Rau <[EMAIL PROTECTED]>
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@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.


______________________________________________
R-help@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.



--
View this message in context: http://www.nabble.com/ignoring-zeros-or-converting-to-NA-tp18948979p18970797.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@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.

______________________________________________
R-help@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.

Reply via email to