Hola
Aun recuerdo como me ilusionó saber que si dentro del paréntesis de la media pones na.rm=T el R pasa de los NA.
> v<-c(1,2,3,NA,4) > mean(v) [1] NA > mean(v,na.rm=T) [1] 2.5
Por que esto es muy cómodo, de hecho lo puedes meter en tu propia función para la media:
# datos de ejemplo > coches<-cars # metamos un NA > coches[10,1]<-NA # la media > apply(coches,MARGIN=2,FUN=mean) speed dist NA 42.98 # nuestra función > mimedia<-function(x) mean(x, na.rm=TRUE) > apply(cars,MARGIN=2,FUN=mimedia) speed dist 15.40 42.98
Y meter la función mimedia donde te de la gana.
Así podia deshacerme de los puñeteros NA que no sabía muy bien de donde venian ni para que servian.
Claro, con el tiempo uno aprende que los NA dependiendo de donde vengan pueden significar cosas muy distintas y que a veces podemos ignorarlos.
Pero a veces conviene convertirlos en un valor interesante.
coches[is.na(coches)]<-"valorinteresante"
O borrarlos:
coches<-cars coches[10,1]<-NA coches.sin.na<-coches[!is.na(coches$speed),]
Esto viene a cuento de esta entrada donde explica como son los NA según de donde vengan. Sabiendo eso podemos trabajar de una forma u otra. Ya que a veces la distribución de los NA puede estar sesgada y entonces no vale borrarlos o ignorarlos.
jaume
GRACIAS GRACIAS!!! al fin me pude liberar de los «molestos» NA….
Gracias a ti por comentar. Me alegro de que te haya sido útil.
jaume.