dplyr
수를 얻을 수있는 솔루션이 될 수있다 :
summarise_all(df, ~sum(is.na(.)))
또는 백분율을 얻으려면 :
summarise_all(df, ~(sum(is_missing(.) / nrow(df))))
누락 된 데이터는보기 흉하고 일관성이 없으며 NA
소스 또는 가져올 때 처리되는 방식에 따라 항상 코딩되지 않을 수 있습니다 . 다음 함수는 데이터와 누락 된 것으로 간주하려는 항목에 따라 조정할 수 있습니다.
is_missing <- function(x){
missing_strs <- c('', 'null', 'na', 'nan', 'inf', '-inf', '-9', 'unknown', 'missing')
ifelse((is.na(x) | is.nan(x) | is.infinite(x)), TRUE,
ifelse(trimws(tolower(x)) %in% missing_strs, TRUE, FALSE))
}
df <- data.frame(a = c(NA, '1', ' ', 'missing'),
b = c(0, 2, NaN, 4),
c = c('NA', 'b', '-9', 'null'),
d = 1:4,
e = c(1, Inf, -Inf, 0))
> summarise_all(df, ~sum(is_missing(.)))
a b c d e
1 3 1 3 0 2
> summarise_all(df, ~(sum(is_missing(.) / nrow(df))))
a b c d e
1 0.75 0.25 0.75 0 0.5
table
문자 수이므로 NA 수를 구문 분석해야합니다.