On Fri, 2006-09-29 at 16:13 -0400, bertrand toupin wrote: > Hi! 1st time I'm posting here. I'm beginning to learn R and I've > encountered a problem that I'm unable to solve so far. > > I have a 20 000 x 5 matrix. In the 5th column, I have elevation. > Missing value are actually put to -99999. I want to track down the > index of those values and replace them with NA. I've read that to > replace, the command "replace" is enough. I just don't know how to > construct the index vector that contains the index of -99999 values. > > Hope this makes sense, > Thanks! > Philippe
See ?is.na and note the use of: is.na(x) <- value Example: > mat <- matrix(sample(50), 10, 5) > mat [,1] [,2] [,3] [,4] [,5] [1,] 24 39 40 30 5 [2,] 8 44 3 34 47 [3,] 23 12 16 14 45 [4,] 35 26 2 11 6 [5,] 13 15 42 33 19 [6,] 7 36 31 49 37 [7,] 29 41 9 27 4 [8,] 48 1 22 25 17 [9,] 43 32 28 38 20 [10,] 18 50 46 21 10 # Set some values in column 5 to -99999 > mat[sample(10, 3), 5] <- -99999 > mat [,1] [,2] [,3] [,4] [,5] [1,] 24 39 40 30 5 [2,] 8 44 3 34 47 [3,] 23 12 16 14 45 [4,] 35 26 2 11 6 [5,] 13 15 42 33 -99999 [6,] 7 36 31 49 -99999 [7,] 29 41 9 27 4 [8,] 48 1 22 25 17 [9,] 43 32 28 38 20 [10,] 18 50 46 21 -99999 # Use which to get the indices within column 5 # of those values which are -99999 # See ?which > which(mat[, 5] == -99999) [1] 5 6 10 # Now extend that and set those to NA > is.na(mat[, 5]) <- which(mat[, 5] == -99999) > mat [,1] [,2] [,3] [,4] [,5] [1,] 24 39 40 30 5 [2,] 8 44 3 34 47 [3,] 23 12 16 14 45 [4,] 35 26 2 11 6 [5,] 13 15 42 33 NA [6,] 7 36 31 49 NA [7,] 29 41 9 27 4 [8,] 48 1 22 25 17 [9,] 43 32 28 38 20 [10,] 18 50 46 21 NA Note one other possibility, which is that if you used one of the read.table() family functions to read in a delimited ASCII file containing the data set, you can set the 'na.strings' argument to "-99999" and have it set these to NA upon importing. See ?read.table for more information. HTH, Marc Schwartz ______________________________________________ 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.