Tengo un gran conjunto de datos que necesito para calcular media / std dev / min / max y durante varias columnas. El conjunto de datos utiliza un "" para denotar cuando se pierde un valor para un sujeto. Cuando se ejecuta la función de media o SD Este causas R para volver NA. ¿Hay una manera sencilla de evitar esto?
mi código es sólo por esta
xCAL<-mean(longdata$CAL)
sdCAL<-sd(longdata$CAL)
minCAL<-min(longdata$CAL)
maxCAL<-max(longdata$CAL)
R pero volverá NA en todas estas variables. Obtuve el siguiente error
Mensaje de advertencia: En mean.default (longdata $ CAL): argumento no es numérico o lógico: regresar NA
Es necesario para convertir sus datos a numérico para ser capaz de hacer cualquier cálculo sobre el mismo. Cuando se ejecuta as.numeric
, el .
se convertirá en NA
, que es la que R utiliza para los valores que faltan. Entonces, de la función que mencionan tener un argumento na.rm
que se puede ajustar a TRUE
eliminar (RM) los valores perdidos (NA).
Si los datos es una factor
, es necesario convertirlo a character
primera a la pérdida de información de evitar , como se explica en este FAQ .
En general, para estar seguro, intente lo siguiente:
longdata$CAL <- as.numeric(as.character(longdata$CAL))
xCAL <- mean(longdata$CAL, na.rm = TRUE)
sdCAL <- sd(longdata$CAL, na.rm = TRUE)
# etc
Ten en cuenta que na.rm
es una propiedad de la función - no es magia que funciona en todas partes. Si nos fijamos en las páginas de ayuda para ?mean
?sd
, ?min
, etc., verá el na.rm
argumento documentado. Si desea eliminar los valores que faltan en general, la na.omit()
función funciona bien.