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

Dimitris Rizopoulos dimitris.rizopoulos at med.kuleuven.ac.be
Fri Jan 14 12:50:44 CET 2005


Hi Mick,

try the following:

dat[] <- lapply(dat, function(x) ifelse(is.na(x), 0, x))
dat

I hope it helps.

Best,
Dimitris

----
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/16/336899
Fax: +32/16/337015
Web: http://www.med.kuleuven.ac.be/biostat
     http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm


----- Original Message ----- 
From: "michael watson (IAH-C)" <michael.watson at bbsrc.ac.uk>
To: <r-help at stat.math.ethz.ch>
Sent: Friday, January 14, 2005 12:20 PM
Subject: [R] Replacing NAs in a data frame using is.na() fails if 
there areno NAs


> 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
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
>




More information about the R-help mailing list