Может быть VIM::aggr()
подойдет вам.
library(VIM)
summary(aggr(d, plot=FALSE))
# Missings per variable:
# Variable Count
# X1 7
# X2 9
# X3 10
# X4 14
#
# Missings in combinations of variables:
# Combinations Count Percent
# 0:0:0:0 5 16.666667
# 0:0:0:1 3 10.000000
# 0:0:1:0 3 10.000000
# 0:0:1:1 3 10.000000
# 0:1:0:0 4 13.333333
# 0:1:0:1 3 10.000000
# 0:1:1:0 1 3.333333
# 0:1:1:1 1 3.333333
# 1:0:0:0 2 6.666667
# 1:0:0:1 3 10.000000
# 1:0:1:0 1 3.333333
# 1:0:1:1 1 3.333333
Чтобы получить только верхнюю часть, вы можете извлечь значения, сохраненные в data.frame
.
out <- summary(aggr(d, plot=FALSE))
out$missings
# Variable Count
# X1 X1 7
# X2 X2 9
# X3 X3 10
# X4 X4 14
Данные
d <- structure(list(X1 = c(NA, 2L, 3L, 4L, 5L, 6L, 7L, NA, 9L, 10L,
11L, 12L, NA, NA, 15L, NA, 17L, NA, 19L, 20L, 21L, 22L, 23L,
24L, 25L, 26L, 27L, NA, 29L, 30L), X2 = c(31L, 32L, 33L, NA,
NA, 36L, NA, 38L, 39L, 40L, 41L, NA, 43L, 44L, 45L, 46L, 47L,
48L, NA, NA, NA, 52L, 53L, 54L, 55L, 56L, NA, 58L, 59L, NA),
X3 = c(61L, 62L, 63L, 64L, 65L, 66L, NA, 68L, 69L, 70L, NA,
72L, NA, NA, NA, 76L, NA, 78L, NA, 80L, 81L, 82L, 83L, NA,
NA, NA, 87L, 88L, 89L, 90L), X4 = c(NA, NA, 93L, 94L, 95L,
96L, NA, NA, NA, 100L, NA, NA, 103L, NA, 105L, NA, 107L,
108L, 109L, NA, NA, NA, 113L, 114L, NA, NA, 117L, 118L, 119L,
120L)), class = "data.frame", row.names = c(NA, -30L))