1. 결측치 찾기
ㄴ대문자 NA(결측치)
data.frame(sex=c("M","F",NA,"M","F"),score=c(5,4,3,4,NA))
ㄴNA 앞 뒤에 겹 따옴표가 없음
ㄴis.na(df) #결측치 확인
ㄴtable(is.na(df)) #결측치 빈도
* filter로 분류 시 : 어떤 변수에 결측치가 있는지 알 수 없음
ㄴ#table(is.na(df$sex) / table(is.na(df$score)로 빈도 출력하여 확인
*결측치 포함상태로 출력
ㄴmean(df$score) / sum(df$score)
ㄴ#어떤 함수에서 NA라는 결과값이 나왔다면 결측치를 확인해봐야겠다는 것을 인지
*결측치 반영 : df%>%filter(is.na(score))
2. 결측치 제외
*#결측치 제외하고 출력 : df%>%filter(!is.na(score))
ㄴassign을 해줘야 반영이 됨을 잊지 말것!
*여러 변수 동시 결측치 없는 데이터 출력
ⓐdf_nomiss<-df%>%filter(!is.na(score) & !is.na(sex))
ⓑdf_nomiss2<-na.omit(df) #모든 변수 결측치 없는 데이터 추출(데이터 손실 유의)
*함수 결측치 제외 기능 이용: na.rm=T
ex) mean(df$score, na.rm=T) / sum(df$score, na.rm=T)
ㄴsummarise()에서 na.rm=T 사용: 결측치 생성> 평균 구하기
#브라켓(내장함수만 가지고 전처리할 때): ex) exam[c(3,8,15),"math"]<-NA = exam[행,열]<-NA할당
ㄴexam%>%summarise(mean_math=mean(math, na.rm=T),
sum_math=sum(math,na.rm=T),
median_math=median(math,na.rm=T)
*결측치 대체법(Imputation)
ⓐ대표값(평균, 최빈값 등)으로 일괄 대체
ㄴ결측치가 맞으면 평균으로 대체하고 그렇지 않으면 그대로 유지: ifelse(is.na(exam$math),55,exam$math)
ㄴ확인: table(is.na(exam$math))
ㄴmpg%>% filter(!is.na(hwy))%>% group_by(drv)%>% summarise(mean_hwy=mean(hwy))
# 결측치 제외, drv별 분리, hwy 평균 구하기
ⓑ예측값 추정 대체: 머신러닝으로 해결하기도 함
'data analysis, R' 카테고리의 다른 글
R공부- 가설검정:이론 (0) | 2021.04.26 |
---|---|
가설검정-실습(ⓐT검정) (0) | 2021.04.26 |
R공부- 데이터 다듬기(그래프 그리기) (0) | 2021.04.23 |
R공부- 데이터 가공하기 (0) | 2021.04.20 |
R공부- 데이터 전처리(조건에 맞는 데이터 가공하기) (0) | 2021.04.19 |
댓글