#r #na #missing-data
#r #na #отсутствует-данные
Вопрос:
У меня есть огромный набор данных анкеты. Глядя на подмножество элементов, я вижу, что для каждого из элементов (скажем, var1: var50) существует 25 NAS. Хотя вполне вероятно, что каждый из этих 25 NAS поступает от одних и тех же участников по разным пунктам, мне нужно на самом деле убедиться, что это правда.
Мне удалось сделать это довольно утомительным способом, и я ищу более элегантное решение проблемы.
Вот рабочий пример моего решения в R:
ID <- 1:10
var1 <- c(1,2,3,2,1,NA,1,3,2,NA)
var2 <- c(2,1,3,1,2,NA,3,2,1,NA)
df <- data.frame(ID,var1,var2)
df[which(is.na(df$var1 amp; df$var2)),]$ID
Как вы можете видеть, мне нужно было бы записать все имена отдельных переменных, что может быть очень утомительно, когда речь идет о 50 или более пунктах анкеты.
Ответ №1:
Вы можете попробовать этот способ.
Таким образом, вы можете вычислить, сколько NA содержится в каждой строке:
n_na <- rowSums(is.na(df[,-1]))
Затем вы можете увидеть, какой идентификатор имеет все NAS, а какой только некоторые.
# all NAs
df[n_na == (ncol(df)-1), "ID"]
#> 6 10
# some NAs
df[n_na > 0, "ID"]
#> 6 10
# some but not all
df[n_na > 0 amp; n_na < (ncol(df)-1), "ID"]
#> integer(0)
Это довольно масштабируемо, если у вас есть много переменных для обработки.
Где df
:
ID <- 1:10
var1 <- c(1,2,3,2,1,NA,1,3,2,NA)
var2 <- c(2,1,3,1,2,NA,3,2,1,NA)
df <- data.frame(ID,var1,var2)
Комментарии:
1. Большое вам спасибо, это экономит так много времени. Это работает очень хорошо.
Ответ №2:
Существует пакет под названием DataExplorer, и он может пригодиться для больших наборов данных. После установки DataExplorer просто загрузите библиотеку
library(DataExplorer)
Как только вы загрузите его, вы можете просто использовать plot_missing
Ниже приведен код
plot_missing(dataframe)
Как только вы запустите его, вы сможете увидеть количество, а также визуализацию
Самое приятное то, что вы можете использовать его в любом фрейме данных, если вам нужен код python для этой библиотеки, у меня это тоже есть, я работаю над созданием пакета на python.