Hi R-Users, I wrote a simple function to change values of a matrix or vector to NA based on the element value being -9999 or -999999. I don't understand why the function returns a unit vector (NA) instead of setting all values in the vector which have -9999 or -999999 to NA. When I apply the function in line, it appears to work correctly?
Can someone enlighten me what I am doing wrong? Thanks in advance. David Here's my example: ConvertMissingToNA <- function (values) { return ( values[ values == -9999 | values == -999999] <- NA ) } d <- floor(runif(10, 1, 100)) pos <- floor (runif(5, 1, 10)) d[pos] <- -9999 pos <- floor (runif(2, 1, 10)) d[pos] <- -999999 print (d) # now apply function e <- ConvertMissingToNA (d) # will return NA as a unit vector print (e) # conduct function in-line d[ d == -9999 | d == -999999] <- NA # correctly converts values to NA print (d) ______________________________________________ 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.