[R] Replacing NAs in a data frame using is.na() fails if there are no NAs

michael watson (IAH-C) michael.watson at bbsrc.ac.uk
Fri Jan 14 12:20:01 CET 2005


Hi

This is a difference between the way matrices and data frames work I
guess.  I want to replace the NA values in a data frame by 0, and the
code works as long as the data frame in question actually includes an NA
value.  If it doesn't, there is an error:

df <- data.frame(c1=c(1,1,1),c2=c(2,2,NA))
df[is.na(df)] <- 0
df

df <- data.frame(c1=c(1,1,1),c2=c(2,2,2))
df[is.na(df)] <- 0
Df

Any help would be appreciated.  I could just convert the data frame to a
matrix, execute the code, then convert it back to a data frame, but that
appears long winded.

Thanks
Mick




More information about the R-help mailing list