On Tue, 12 Aug 2008, stephen sefick wrote:
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?
is.na(a) <- a==0
make values in a NA when a is 0?
is this right? what the logic if not?
From
R Language Definition
3.1.3 Function calls
A special type of function calls can appear on the left hand side of the
assignment operator as in
> class(x) <- "foo"
What this construction really does is to call the function class<- with
the original object and the right hand side. This function performs the
modification of the object and returns the result which is then stored
back into the original variable. (At least conceptually, this is what
happens. Some additional effort is made to avoid unnecessary data
duplication.)
Also, see what
?Extract
says about subassignment.
Then read
page(`is.na<-.default`,'print')
to see an instance relevant to this thread.
Finally, you might try toying with the subassignment functions:
`is.na<-`(a,1)
`is.na<-`(a,TRUE)
`is.na<-`(a[1:3],TRUE)
all return the modified object (but do not actually assign it back to `a`
as would "is.na(a) <- 1", etc.)
HTH,
Chuck
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
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.