[r] data.frame에서 누락 된 값을보고하는 우아한 방법

다음은 데이터 프레임에서 누락 된 값이있는 변수를보고하기 위해 작성한 코드입니다. 이 작업을 수행하는 더 우아한 방법, 아마도 data.frame을 반환하는 방법을 생각하고 있지만 갇혀 있습니다.

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

편집 : 저는 수십에서 수백 개의 변수가있는 data.frame을 다루고 있으므로 누락 된 값이있는 변수 만보고하는 것이 중요합니다.



답변

그냥 사용 sapply

> sapply(airquality, function(x) sum(is.na(x)))
  Ozone Solar.R    Wind    Temp   Month     Day
     37       7       0       0       0       0

apply또는 다음 colSums에서 만든 행렬을 사용할 수도 있습니다.is.na()

> apply(is.na(airquality),2,sum)
  Ozone Solar.R    Wind    Temp   Month     Day
     37       7       0       0       0       0
> colSums(is.na(airquality))
  Ozone Solar.R    Wind    Temp   Month     Day
     37       7       0       0       0       0


답변

map_dfpurrr와 함께 사용할 수 있습니다 .

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


답변

(너무 넓지 않은) 데이터에 대한 나의 새로운 즐겨 찾기는 우수한 naniar 패키지의 메서드입니다 . 빈도뿐만 아니라 누락 패턴도 얻습니다.

library(naniar)
library(UpSetR)

riskfactors %>%
  as_shadow_upset() %>%
  upset()

여기에 이미지 설명 입력

누락이있는 산점도를 플로팅하여 얻을 수있는 비결 측과 관련하여 누락이 어디에 있는지 확인하는 것이 종종 유용합니다.

ggplot(airquality,
       aes(x = Ozone,
           y = Solar.R)) +
 geom_miss_point()

여기에 이미지 설명 입력

또는 범주 형 변수의 경우 :

gg_miss_fct(x = riskfactors, fct = marital)

여기에 이미지 설명 입력

이러한 예는 다른 흥미로운 시각화를 나열하는 패키지 비 네트 에서 가져온 것 입니다.


답변

summary(airquality)

이미이 정보를 제공합니다

VIM의 패키지는 data.frame 데이터 플롯 누락 멋진을 제공합니다

library("VIM")
aggr(airquality)

여기에 이미지 설명 입력


답변

더 간결 : sum(is.na(x[1]))

그건

  1. x[1] 첫 번째 열을보세요

  2. is.na() 사실이라면 NA

  3. sum() TRUE이다 1, FALSE있다0


답변

또 다른 그래픽 대안- plot_missing우수한 DataExplorer패키지의 기능 :

여기에 이미지 설명 입력

문서 는 또한 추가 분석을 위해이 결과를 저장할 수 있다는 사실을 지적합니다 missing_data <- plot_missing(data).


답변

누락 된 데이터를 확인하는 데 도움이되는 또 다른 함수는 funModeling 라이브러리의 df_status입니다.

library(funModeling)

iris.2는 일부 추가 된 NA가있는 홍채 데이터 세트입니다.이를 데이터 세트로 바꿀 수 있습니다.

df_status(iris.2)

그러면 각 열에있는 NA의 수와 백분율이 제공됩니다.