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
'R' 카테고리의 다른 글
R ) stringr 패키지 알아보기 -1 str_c, str_split, str_detect in r (0) | 2022.04.20 |
---|---|
R ) 결측치 확인 및 처리 NA mice pmm in r -2 (0) | 2022.04.19 |
R ) gather(), spread() 함수 알아보기 피벗, 언피벗 feat. long type, wide type in r (0) | 2022.04.15 |
R ) 2개의 data set을 합치는 join 함수 알아보기 in r (0) | 2022.04.14 |
R ) map() 함수 알아보기 column별 같은 함수 적용 in r (0) | 2022.04.13 |
댓글