Am 30.03.2011 09:15, schrieb Christopher Desjardins:
Hi,
I am trying to write a loop to recode my data from -999 to NA in R. What's
the most efficient way to do this? Below is what I'm presently doing, which
is inefficient. Thanks,
Chris
dat0<- read.table("time1.dat")
colnames(dat0)<- c("e1dq", "e1arcp", "e1dev", "s1prcp", "s1nrcp", "s1ints",
"a1gpar", "a1pias", "a1devt")
dat0[dat0$e1dq==-999.00000000,"e1dq"]<- NA
dat0[dat0$e1arcp==-999.00000000,"e1arcp"]<- NA
dat0[dat0$e1dev==-999.00000000,"e1dev"]<- NA
dat0[dat0$s1prcp==-999.00000000,"s1prcp"]<- NA
dat0[dat0$s1nrcp==-999.00000000,"s1nrcp"]<- NA
dat0[dat0$s1ints==-999.00000000,"s1ints"]<- NA
dat0[dat0$a1gpar==-999.00000000,"a1gpar"]<- NA
dat0[dat0$a1pias==-999.00000000,"a1pias"]<- NA
dat0[dat0$a1devt==-999.00000000,"a1devt"]<- NA
Given that all your variables share the same code for missing values,
e.g. -99, you could do the following:
df <- data.frame(a = c(1, 2, -99),
b = c(33, -99, 22),
c = c(-99, -99, 101))
df
df[df == -99] <- NA
df
HTH,
Bernd
______________________________________________
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.