[R] ignoring zeros or converting to NA
smckinney at bccrc.ca
Wed Aug 13 04:33:31 CEST 2008
The help page for is.na()
is worth reading repeatedly.
> -----Original Message-----
> From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org]
> On Behalf Of stephen sefick
> Sent: Tuesday, August 12, 2008 6:53 PM
> To: Charles C. Berry
> Cc: Mike Prager; r-help at stat.math.ethz.ch
> 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'.
> is this right? what the logic if not?
> Stephen Sefick
> On Tue, Aug 12, 2008 at 6:32 PM, Charles C. Berry
<cberry at tajo.ucsd.edu>
> > On Tue, 12 Aug 2008, Mike Prager wrote:
> >> rcoder <mpdotbook at gmail.com> wrote:
> >>> I have a matrix that has a combination of zeros and NAs. When I
> >>> certain calculations on the matrix, the zeros generate "Inf"
> >>> there a way to either convert the zeros in the matrix to NAs, or
> >>> perform the calculations if not zero (i.e. like using something
> >>> 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 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.
> > Charles C. Berry (858) 534-2098
> > Dept of Family/Preventive
> > Medicine
> > E mailto:cberry at tajo.ucsd.edu UC San Diego
> > http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego
> > ______________________________________________
> > 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-
> > 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 at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help