Hello everyone, I am trying to figure out a way of replacing missing observations in one of the variables of a data frame by values of another variable. For example, assume my data is X
X <-as.data.frame(matrix(c(9, 6, 1, 3, 9, "NA", "NA","NA","NA","NA", 6, 4, 3,"NA", "NA", "NA", 5, 4, 1, 3), ncol=2)) names(X)<-c("X1","X2") I want to change X1 so that instead of the missing values it uses the values in X2 (regardless of whether these are missing). So my X1, should become X$X1 <- c(9, 6, 1, 3, 9, "NA", 5, 4, 1, 3). I have searched online for a while and looked at the manuals and the best (unsuccessful) attempt I have come up with is X$X1[X$X1=="NA"] <- X$X2 and that produces the following X1 X$X1<-c(9, 6, 1, 3, 9, 6, "NA", 3, "NA", "NA") and generates the following warning: Warning messages: 1: In `[<-.factor`(`*tmp*`, X$X1 == "NA", value = c(5L, 3L, 2L, 6L, : invalid factor level, NAs generated 2: In x[...] <- m : number of items to replace is not a multiple of replacement length I think that my error is that it is ignoring the non-missing values of X1 and the dimensions don't match. But what I want my code to do is to look at the rows of X1, see if it's a missing value; if it is, replace it with the value that is in the row of X2; if it's not missing, leave it as is. What am I doing wrong? Thank you very much! Rita -- View this message in context: http://r.789695.n4.nabble.com/Replacing-NAs-in-one-variable-with-values-of-another-variable-tp3763269p3763269.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.