The help page for is.na() is worth reading repeatedly.
> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > On Behalf Of stephen sefick > Sent: Tuesday, August 12, 2008 6:53 PM > To: Charles C. Berry > Cc: Mike Prager; [EMAIL PROTECTED] > Subject: Re: [R] ignoring zeros or converting to NA > > I have been reading this thread and I am having a hard interpreting > what these mean. I know that the result is that all of the values > that are zero in a are replaced by NA. Let me try and write it out > > is.na(a[a==0] ) <- TRUE > you pull out of a all of the times that are equal to zero then is.na > tests and returns false then all of the false values are set to true? Not quite - the function 'is.na<-' needs an index vector as input. So my understanding is that all the values in 'a' that are zero will have their value set to NA, because R will replicate the TRUE (vector of length 1) to a vector of length (sum(a==0)), this being the index vector. > > is.na(a) <- a==0 > make values in a NA when a is 0? Right. a==0 generates a logical vector with length (length(a)) with value 'TRUE' wherever 'a' has a zero entry. 'is.na<-' will then set those entries to NA. The entries where 'a==0' is FALSE will not have their values changed to NA. The version ' is.na(a[a==0] ) <- TRUE ' is doing the same thing, the logical index vector for ' a[a==0] ' consists of all 'TRUE'. HTH Steve McKinney > > is this right? what the logic if not? > thanks > > Stephen Sefick > > > On Tue, Aug 12, 2008 at 6:32 PM, Charles C. Berry <[EMAIL PROTECTED]> > wrote: > > On Tue, 12 Aug 2008, Mike Prager wrote: > > > >> rcoder <[EMAIL PROTECTED]> wrote: > >> > >>> 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)? > >> > >> Is this what you are looking for? > >> > >>> # make some data > >>> a = matrix(c(rep(0,6), rep(2,6)), nrow = 4) > >>> a > >> > >> [,1] [,2] [,3] > >> [1,] 0 0 2 > >> [2,] 0 0 2 > >> [3,] 0 2 2 > >> [4,] 0 2 2 > >>> > >>> # change zero to NA > >>> is.na(a[a==0] ) <- TRUE > > > > Or > > is.na(a) <- a==0 > > > > Chuck > > > >>> a > >> > >> [,1] [,2] [,3] > >> [1,] NA NA 2 > >> [2,] NA NA 2 > >> [3,] NA 2 2 > >> [4,] NA 2 2 > >> > >> -- > >> Mike Prager, NOAA, Beaufort, NC > >> * Opinions expressed are personal and not represented otherwise. > >> * Any use of tradenames does not constitute a NOAA endorsement. > >> > >> ______________________________________________ > >> 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. > >> > > > > Charles C. Berry (858) 534-2098 > > Dept of Family/Preventive > > Medicine > > E mailto:[EMAIL PROTECTED] UC San Diego > > http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093- > 0901 > > > > ______________________________________________ > > 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. > > > > > > -- > Let's not spend our time and resources thinking about things that are > so little or so large that all they really do for us is puff us up and > make us feel like gods. We are mammals, and have not exhausted the > annoying little problems of being mammals. > > -K. Mullis > > ______________________________________________ > 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.