[R] using ifelse with surprising results

hadley wickham h.wickham at gmail.com
Fri Oct 17 23:48:45 CEST 2008


On Fri, Oct 17, 2008 at 3:50 PM,  <Steve_Friedman at nps.gov> wrote:
>
> Thanks for the gracious assistance in advance
>
> I'm working on a non-metric scaling problem and am calculating the distance
> for input to isoMDS
>
> Here is the code
>
> library(MASS)
> vegdata <- tapply(Percent, list(PRIMARY_VE, MASTERID), sum)
> x.mat <- matrix(x, nrow=40, ncol=2750, byrow=TRUE, dimnames =
> c(dimnames(x)[1], dimnames(x)[2]))
>
>
>  vegdata.dd <- dist(x)
>  vegdata.dd <- ifelse(vegdata.dd==NA, 0.01, x.dd)
>  vegdata.dd
>
> Everything works as expected until I try to replace the NA values in the
> distance matrix.
> the ifelse statement converts the entire dataset to NA.
>
> What am I doing incorrectly?

What does NA == NA equal?  This is not intuitive (at first!) but very
important when dealing with NAs.

Hadley

-- 
http://had.co.nz/



More information about the R-help mailing list