Delete comment from: One R Tip A Day
Paolo said...
This seems a good question to post on Stackoverflow
in the meantime:
d <- data.frame(x=c(1:10000), y=c(rep(NA,8000),1:2000))
system.time( for(i in 1:nrow(d)) d[[i,2]][is.na(d[[i,2]])]=d[[i,1]] )
# user system elapsed
# 2.506 0.023 2.529
d2 <- data.frame(x=c(1:10000), y=c(rep(NA,8000),1:2000))
system.time( d2 <- ifelse(is.na(d2$y),d2$x, d2$y) )
# user system elapsed
# 0.001 0.000 0.001
identical(d$y,d2)
HIH
Sep 23, 2011, 11:03:02 PM

