¿Cómo imputar valores faltantes en R?

En este artículo, discutiremos cómo imputar valores faltantes en el lenguaje de programación R.

En la mayoría de los conjuntos de datos, pueden faltar valores porque no se ingresaron o debido a algún error. Reemplazar estos valores faltantes con otro valor se conoce como imputación de datos. Hay varias formas de imputación. Los más comunes incluyen reemplazar con el valor promedio, mínimo o máximo en esa columna/característica. Diferentes conjuntos de datos y características requerirán un tipo de método de imputación. Por ejemplo, considerando un conjunto de datos de rendimiento de ventas de una empresa, si la pérdida de características tiene valores faltantes, sería más lógico reemplazar un valor mínimo.

Conjunto de datos en uso:

Imputar una columna

Método 1 : Imputación manual con valor medio

Vamos a imputar los valores faltantes de una columna de datos, es decir, marcas1 con el valor medio de toda esta columna.

Sintaxis:

media(x, ajuste = 0, na.rm = FALSO, …)

Parámetro:

  • x – cualquier objeto
  • trim – observaciones que se recortarán de cada extremo de x antes de que se calcule la media
  • na.rm – FALSO para eliminar valores NA

Ejemplo: imputación de valores faltantes

R

# create a adataframe
data <- data.frame(marks1 = c(NA, 22, NA, 49, 75),
                   marks2 = c(81, 14, NA, 61, 12),
                   marks3 = c(78.5, 19.325, NA, 28, 48.002))
  
# impute manually
data$marks1[is.na(data$marks1)] <- mean(data$marks1, na.rm = T)  
  
data

Producción:

Método 2 : usar la biblioteca Hmisc e imputar con el valor de la mediana

Usando la función imputar() dentro de la biblioteca Hmisc, imputemos las marcas de columna2 de datos con el valor medio de esta columna completa.

Ejemplo: imputar valores faltantes

R

# install and load the required packages
  
install.packages("Hmisc")
library(Hmisc)
  
# create a adataframe
data <- data.frame(marks1 = c(NA, 22, NA, 49, 75),
                   marks2 = c(81, 14, NA, 61, 12),
                   marks3 = c(78.5, 19.325, NA, 28,
                              48.002))
  
# fill missing values of marks2 with median
impute(data$marks2, median)

Producción:

imputando con el valor de la mediana

Método 3: imputar con un valor constante específico

Usando la función imputar() dentro de la biblioteca Hmisc, imputemos las marcas de columna2 de datos con un valor constante.

Ejemplo: imputar valores faltantes

R

# install and load the required packages
install.packages("Hmisc")
library(Hmisc)
  
# create a adataframe
data <- data.frame(marks1 = c(NA, 22, NA, 49, 75),
                   marks2 = c(81, 14, NA, 61, 12),
                   marks3 = c(78.5, 19.325, NA, 28, 
                              48.002))
  
# impute with a specific number
# replace NA with 2000
impute(data$marks3, 2000)  

Producción:

 Imputar con un valor constante específico

Impute todo el conjunto de datos:

Esto se puede hacer imputando el valor de la mediana de cada columna con NA utilizando la función apply().

Sintaxis: 

aplicar (X, MARGEN, DIVERSIÓN, …)

Parámetro:

  • X: una array, incluida una array
  • MARGEN – un vector
  • FUN – la función a aplicar

Ejemplo: imputar todo el conjunto de datos 

R

# create a adataframe
data <- data.frame(marks1 = c(NA, 22, NA, 49, 75),
                   marks2 = c(81, 14, NA, 61, 12),
                   marks3 = c(78.5, 19.325, NA, 28, 
                              48.002))
  
# getting median of each column using apply() 
all_column_median <- apply(data, 2, median, na.rm=TRUE)
  
# imputing median value with NA 
for(i in colnames(data))
  data[,i][is.na(data[,i])] <- all_column_median[i]
  
data

Producción:

Publicación traducida automáticamente

Artículo escrito por saaiswethasret 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 *