识别缺失值最少的变量

时间:2018-11-17 23:53:00

标签: r missing-data

我有一个数据集,包含339个可能的独立变量和7700个观察值。我使用了Amelia程序包(我正在用R编程),以便可视化数据的缺失值,这就是我所得到的。

Missing values vs observed values graph

我希望为回归选择我用棕色矩形表示的变量。但是由于我有339个变量,因此x轴上的标签不可读,我也不知道这些变量是哪个。我已经尝试过x.cex = 0.1和x.cex = 0.01,但是标签变得太小而无法阅读。我的问题是如何识别棕色矩形中的变量?

1 个答案:

答案 0 :(得分:1)

这是一种实现方法:

data <- as.data.frame(setNames(replicate(10,sample(c(1,NA),1000,replace=TRUE),simplify = FALSE),LETTERS[1:10]))
head(data)
#    A  B  C  D  E  F  G  H  I  J
# 1 NA NA NA  1  1 NA NA  1  1  1
# 2  1  1 NA  1  1 NA  1 NA  1 NA
# 3  1  1 NA  1  1 NA  1  1 NA  1
# 4 NA  1  1 NA  1  1  1  1 NA NA
# 5  1 NA NA NA NA  1 NA  1 NA NA
# 6  1  1  1 NA NA  1 NA NA  1  1

x <- stack(sapply(data,function(x) sum(is.na(x))))
head(x[order(x$values),])
#    values ind
# 7     476   G
# 3     478   C
# 8     481   H
# 10    489   J
# 4     499   D
# 2     500   B

带有tidyverse的是:

library(tidyverse)
data %>%
  gather %>%
  group_by(key) %>%
  summarize(NAs = sum(is.na(value))) %>%
  arrange(NAs) %>%
  head
# # A tibble: 6 x 2
#   key     NAs
#   <chr> <int>
# 1 G       476
# 2 C       478
# 3 H       481
# 4 J       489
# 5 D       499
# 6 B       500