Como su nombre indica, los valores perdidos son aquellos elementos que no se conocen. NA o NaN son palabras reservadas que indican un valor faltante en el lenguaje de programación R para operaciones aritméticas q que no están definidas.
R – manejo de valores perdidos
Los valores perdidos son prácticos en la vida. Por ejemplo, algunas celdas de las hojas de cálculo están vacías. Si se intenta una operación aritmética insensible o imposible, se producen NA.
Manejo de valores faltantes en R
Los valores perdidos en R se manejan con el uso de algunas funciones predefinidas:
Función is.na() para encontrar valores faltantes:
Esta función devuelve un vector lógico que indica todos los valores NA presentes. Devuelve un valor booleano. Si NA está presente en un vector, devuelve VERDADERO, de lo contrario, FALSO.
R
x<- c(NA, 3, 4, NA, NA, NA) is.na(x)
Producción:
[1] TRUE FALSE FALSE TRUE TRUE TRUE
Función is.nan() para encontrar valores faltantes:
Esta función devuelve un vector lógico que indica todos los valores NaN presentes. Devuelve un valor booleano. Si NaN está presente en un vector, devuelve VERDADERO, de lo contrario FALSO.
R
x<- c(NA, 3, 4, NA, NA, 0 / 0, 0 / 0) is.nan(x)
Producción:
[1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE
Propiedades de los valores perdidos:
- Para probar objetos que son NA, use is.na()
- Para probar objetos que son NaN, use is.nan()
- Hay clases bajo las cuales entra NA. Por lo tanto, la clase entera tiene el tipo entero NA, la clase de caracteres tiene el tipo de caracteres NA, etc.
- Un valor de NaN se cuenta en NA pero lo contrario no es válido.
También es posible la creación de un vector con una o varias NA.
R
x<- c(NA, 3, 4, NA, NA, NA) x
Producción:
[1] NA 3 4 NA NA NA
Eliminación de valores NA o NaN
Hay dos formas de eliminar los valores que faltan:
Extracción de valores excepto los valores NA o NaN:
Ejemplo 1:
R
x <- c(1, 2, NA, 3, NA, 4) d <- is.na(x) x[! d]
Producción:
[1] 1 2 3 4
Ejemplo 2:
R
x <- c(1, 2, 0 / 0, 3, NA, 4, 0 / 0) x x[! is.na(x)]
Producción:
[1] 1 2 NaN 3 NA 4 NaN [1] 1 2 3 4
También se puede utilizar la función llamada complete.cases() . Esta función también funciona en tramas de datos.
Funciones de filtro de valores perdidos
Las funciones de modelado en lenguaje R reconocen un argumento na.action que proporciona instrucciones a la función con respecto a su respuesta si NA se interpone en su camino.
Y por lo tanto, de esta manera, la función llama a una de las funciones de filtro de valores perdidos. Las funciones de filtro de valores perdidos modifican el conjunto de datos y en el nuevo conjunto de datos se ha cambiado el valor de NA. La función de filtro de valores perdidos predeterminada es na.omit . Omite todas las filas que contienen incluso un NA. Algunas otras funciones de filtro de valores perdidos son:
- na.omit : omite todas las filas que contienen incluso un NA
- na.fail : se detiene y no continúa si se encuentra NA
- na.exclude : excluye todas las filas que contienen incluso un NA, pero mantiene un registro de su posición original
- na.pass : simplemente ignora NA y lo atraviesa
R
# Creating a data frame df <- data.frame (c1 = 1:8, c2 = factor (c("B", "A", "B", "C", "A", "C", "B", "A"))) # Filling some NA in data frame df[4, 1] <- df[6, 2] <- NA # Printing all the levels(NA is not considered one) levels(df$c2) # fails if NA is encountered na.fail (df) # excludes every row containing even one NA na.exclude (a)
Producción:
[1] "A" "B" "C" Error in na.fail.default(df) : missing values in object Calls: na.fail -> na.fail.default Execution halted
Casos especiales
Hay dos casos especiales en los que NA se denota o se presenta de manera diferente:
- Vectores de factores : es el símbolo que se muestra en los vectores de factores para los valores faltantes.
- NaN : este es un caso especial de NA solamente. Se muestra cuando una operación aritmética arroja un resultado que no es un número. Por ejemplo, dividir cero por cero produce NaN.