"Spilak,Jacqueline [Edm]" <[EMAIL PROTECTED]> wrote: > I need help with replacing NaN with zero (the value '0') in my dataset. > The reason is that I can't get it to graph because of the NaN in the > dataset. I have tried: > data[is.nan(data)] <- 0 > that others have suggested in the help archives but this does nothing so > I am not sure what I am doing wrong.
The function is.nan() does not operate like is.na(). One could consider that a design deficiency in R. You can overcome it with apply(), is in this short script: > tmp = data.frame(a = 1:3, b = 4:6) > tmp$a[1] = 0/0 > print(tmp) a b 1 NaN 4 2 2 5 3 3 6 > mask <- apply(tmp, 2, is.nan) > tmp2 <- tmp > tmp2[mask] <-1000 > print(tmp2) a b 1 1000 4 2 2 5 3 3 6 Here I used 1000 instead of 0 to make it more easily seen. For plotting, I would not use 0 as you propose, as that will plot a point at zero. It is usually better to use NA, as in > is.na(tmp2[mask]) <- TRUE HTH -- 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.