[R] replace NAs

Agustin Lobo alobo at ija.csic.es
Wed Feb 27 10:50:57 CET 2002


But, assuming you accept replacing each NA by the
global mean or median, the same operation can
be done avoiding the for(), which is always
better:

> x<-c(NA,12,NA,14,15,17,21)
> x[is.na(x)] <- median(x,na.rm=T)
> x
[1] 15 12 15 14 15 17 21

Agus

Dr. Agustin Lobo
Instituto de Ciencias de la Tierra (CSIC)
Lluis Sole Sabaris s/n
08028 Barcelona SPAIN
tel 34 93409 5410
fax 34 93411 0012
alobo at ija.csic.es


On Wed, 27 Feb 2002, E. D. Isaia wrote:

> With this function you may replace the NA with the mean or median of the non
> missing values
> 
> ##   replace NA
> ##
> rep.na<-function(x, my.mean=TRUE)
> {
>     if (!my.mean){valore<-median(x[!is.na(x)])}
>     else {valore<-mean(x[!is.na(x)])}
>     for (i in (1:length(x))){if (is.na(x[i])==TRUE) {x[i]<-valore}}
>     x<<-x
> }
> ##
> ##
> i.e.
> 
> > (x<-c(NA,12,NA,14,15,17,21))
> [1] NA 12 NA 14 15 17 21
> > (rep.na(x))
> [1] 15.8 12.0 15.8 14.0 15.0 17.0 21.0
> > (rep.na(x,my.mean=FALSE))
> [1] 15 12 15 14 15 17 21
> 
> Good job, isaia.
> 
> 
> 
> juan pablo perez wrote:
> 
> > Dear R community:
> >
> > it is possible to replace NA´s in a data frame with zeroes?
> > what should I do?
> >
> > Thanks in advance
> >
> > Juan Pablo
> >
> > _________________________________________________________________
> > MSN Photos es la manera más sencilla de compartir e imprimir sus fotos:
> > http://photos.latam.msn.com/Support/WorldWide.aspx
> >
> > -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> > r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> > Send "info", "help", or "[un]subscribe"
> > (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> > _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
> 
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~ Ennio D. Isaia
> ~ Dep. of Statistics & Mathematics, University of Torino
> ~ Piazza Arbarello, 8 - 10128 Torino (Italy)
> ~ Phone: +39 011 670 62 51 ~~ Fax: +39 011 670 62 39
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> 
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
> 

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list