data - count null values r



Forma elegante de informar los valores perdidos en un data.frame (7)

Creo que la biblioteca de Amelia hace un buen trabajo al manejar los datos que faltan, también incluye un mapa para visualizar las filas que faltan.

install.packages("Amelia")
library(Amelia)
missmap(airquality)

También puede ejecutar el siguiente código devolverá los valores lógicos de na

row.has.na <- apply(training, 1, function(x){any(is.na(x))})

https://ffff65535.com

Aquí hay un pequeño fragmento de código que escribí para informar variables con valores perdidos de un marco de datos. Estoy tratando de pensar en una forma más elegante de hacer esto, una que quizás devuelva un data.frame, pero estoy atascado:

for (Var in names(airquality)) {
    missing <- sum(is.na(airquality[,Var]))
    if (missing > 0) {
        print(c(Var,missing))
    }
}

Edit: estoy tratando con data.frames con docenas a cientos de variables, por lo que es clave que solo informemos variables con valores perdidos.


Más sum(is.na(x[1])) : sum(is.na(x[1]))

Es decir

  1. x[1] Mira la primera columna

  2. is.na() verdadero si es NA

  3. sum() TRUE es 1 , FALSE es 0


Otra alternativa gráfica: la función plot_missing del excelente paquete DataExplorer :

Docs también señala el hecho de que puede guardar estos resultados para un análisis adicional con missing_data <- plot_missing(data) .


Otra función que le ayudaría a ver los datos que faltan sería df_status de la biblioteca funModeling

library(funModeling)

iris.2 es el conjunto de datos del iris con algunas NA añadidas. Puede reemplazar esto con su conjunto de datos.

df_status(iris.2)

Esto le dará la cantidad y el porcentaje de NA en cada columna.


Podemos usar map_df con purrr.

library(mice)
library(purrr)

# map_df with purrr
map_df(airquality, function(x) sum(is.na(x)))
# A tibble: 1 × 6
# Ozone Solar.R  Wind  Temp Month   Day
# <int>   <int> <int> <int> <int> <int>
# 1    37       7     0     0     0     0

Si desea hacerlo para una columna particular, entonces también puede usar esto

length(which(is.na(airquality[1])==T))

summary(airquality)

Ya te da esta información

Los paquetes VIM también ofrecen algún gráfico de datos ausentes para data.frame

library("VIM")
aggr(airquality)





missing-data