본문 바로가기
R

R ) 결측치 확인 및 처리 NA in r -1

by C.Mond 2022. 4. 18.
728x90
728x90

안녕하세요

 

오늘은 결측치 처리에 대해 공부한것을 기록하려고 합니다.

 

결측치를 처리하는 방법은 실제값 채워넣기, 단순대체, NA data제거, 다중대체가 있습니다.

 

data의 column별 결측 비율에 대해 알아보겠습니다.

 

test <- data.frame(col1=sample(x=1:100,size=500,replace = T),
col2=sample(x=1:100,size=500,replace = T),
col3=sample(x=1:100,size=500,replace = T))
sum(is.na(test))
col1na <- sample(x=1:500,size=25,replace = F)
col2na <- sample(x=1:500,size=10,replace = F)
col3na <- sample(x=1:500,size=50,replace = F)
test[col1na,1] <- NA
test[col2na,2] <- NA
test[col3na,3] <- NA
test
sum(is.na(test))

새로운 data frame을 만들고 무작위로 NA값을 넣어주었습니다.

최종적으로 들어있는 NA값이 85개임을 알 수 있습니다.

 

각 column별로 결측치를 알아보겠습니다.

library(purrr)
map_df(.x=test,.f=function(x){
is.na(x) %>% mean()*100
})
map_dbl(.x=test,.f=function(x){
is.na(x) %>% mean()*100
})

위 처럼 column별 결측치의 비율을 볼 수 있습니다.

 

특정 비율이상의 column을 지우고 싶다면 다음과 같이 진행할 수 있습니다.

 

rmcol <- map_dbl(.x=test,.f=function(x){ is.na(x) %>% mean()*100 })
rmcol
test[,!rmcol>=10]

결측치 비율이 10%이상인 column을 지운것입니다.

728x90
728x90

댓글