You test matrix did not have any 99 in it, so I replaced all '3's with NAs

> mat
     cat dog rat
[1,]   3   3   5
[2,]   5   5  NA
[3,]   6   3   4
[4,]   8   6   9
> mat[mat == 3] <- NA
> mat
     cat dog rat
[1,]  NA  NA   5
[2,]   5   5  NA
[3,]   6  NA   4
[4,]   8   6   9
>


You can not do "value == NA"; you have to use 'is.na(value)'


On 7/31/06, John Kane <[EMAIL PROTECTED]> wrote:
>
> Runninn R.2.3.1  Windows XP
>
> I have a dataset just imported from SPSS.  It has any
> number of 99's as missing data and it looks like the
> next dataset will have custom missing codes. I have
> abouat 120 variables and an N of 2000.
>
> "I think" thatI would like to apply a function to the
> data.frame (or to a matrix of the data if needed) to
> recode all the 99's to NA.  I thought that I could
> adapt an example from the list using "apply" but with
> no success.
>
> Is there a decent source of examples of how to write
> an if statement on the web? I'm missing something
> simple.
> Here is an example of what I have been trying.
>
> ######
> cat <- c( 3,5,6,8)
> dog <- c(3,5,3,6)
> rat <- c (5, NA, 4, 9)
> mat <- (cbind(cat,dog, rat))
> Df <- data.frame(cbind(cat, dog, rat)
>
> #  define function
> fn <- function (x a) {
> if (x==a)return  (b) else x
> }
>
> apply(mat, c(1,2), fn, 99, NA)
> #####################
>
> Thanks
>
> ______________________________________________
> R-help@stat.math.ethz.ch 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

        [[alternative HTML version deleted]]

______________________________________________
R-help@stat.math.ethz.ch 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