Archivo de la etiqueta: NA

Truco R. Valores perdidos a 0, ejemplo de uso de sapply

Muy habitual partinos la cabeza con valores perdidos en R. Los NA pueden darnos algún quebradero de cabeza. Este truco es muy sencillo, transforma valores  missing a 0 y nos sirve para aplicar funciones a data.frame con la función sapply. Veamos el sencillo ejemplo:


x=c(1,23,5,9,0,NA)
y=c(5,45,NA,78,NA,34)
dataf=data.frame(cbind(x,y))
mean(dataf$x,na.rm=TRUE)
mean(dataf$y,na.rm=TRUE)
#Podría interesarnos tener en cuenta los NAs
sum(dataf$x,na.rm=TRUE)/nrow(dataf)
sum(dataf$y,na.rm=TRUE)/nrow(dataf)

Tenemos un data.frame con dos variables que contienen valores perdidos, deseamos crear una función que  pase estos valores a 0 y aplicarlo al data.frame de partida:


haz.cero.na=function(x){
ifelse(is.na(x),0,x)}
dataf.2=data.frame(sapply(dataf,haz.cero.na))
dataf
dataf.2

Un ejemplo muy sencillo de aplicación de funciones con sapply a data.frames perfectamente extrapolable a matrices y vectores. Erreros tiene una entrada al respecto. Saludos.