Skip to content
Prev 59130 / 398502 Next

Changing zeros to NAs in a data frame

This isn't pretty but it's a way to do it:

foo <- data.frame(x = c(1,0,1,1,0,2,4), y = as.factor(c(0,2,1,1,0,3,1)))
Zero2NA <- function(x){
    if(is.numeric(x)) { x[x == 0] <- NA; }
    return(x)
}
foo2 <- as.data.frame(lapply(foo, Zero2NA))
foo
foo2

HTH, Andy