On Oct 1, 2010, at 12:51 PM, mlar...@rsmas.miami.edu wrote: > I calculated a large vector. Unfortunately, I have some measurement error > in my data and some of the values in the vector are erroneous. I ended up > wih some Infs and NaNs in the vector. I would like to filter out the Inf > and NaN values and only keep the values in my vector that range from 1 to > 20. Is there a way to filter out Infs and NaNs in R and end up with a > clean vector? > > Mike
set.seed(1) x <- sample(c(0:25, NaN, Inf, -Inf), 50, replace = TRUE) > x [1] 7 10 16 NaN 5 NaN Inf 19 18 1 5 5 19 [14] 11 22 14 20 -Inf 11 22 Inf 6 18 3 7 11 [27] 0 11 25 9 13 17 14 5 23 19 23 3 20 [40] 11 23 18 22 16 15 22 0 13 21 20 > x[is.finite(x) & x >= 1 & x <= 20] [1] 7 10 16 5 19 18 1 5 5 19 11 14 20 11 6 18 3 7 11 11 9 13 [23] 17 14 5 19 3 20 11 18 16 15 13 20 See ?is.finite HTH, Marc Schwartz ______________________________________________ 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.