Manejo de valores faltantes en la programación R

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.

Publicación traducida automáticamente

Artículo escrito por support3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *