결측치 젤 중요해.....
![](https://t1.daumcdn.net/keditor/emoticon/face/large/004.png)
00. 데이터 불러오기
# library(dplyr)
imdb <- read.csv(file.choose())
imdb %>% head()
01. 결측치 확인
- is.na(x): x 객체 안에 NA 값이 있으면 그 자리에 TRUE를 반환하고, 없으면 FALSE를 반환한다.
is.na(imdb$Metascore)[1:30]
sum(is.na(imdb$Metascore)) # Metascore 열의 NA 갯수 출력
imdb %>% filter(is.na(Meta_score)) # Meta_score가 NA인 데이터 출력
- 결측치 빈도 출력
# imdb내 모든 변수별 결측치 개수 출력
colSums(is.na(imdb)) # True가 1이니깐
table(is.na(imdb)) # 결측치 157개
02. 결측치 제거
- na.omit() : 결측치가 하나라도 포함된 행은 삭제
imdb2 <- na.omit(imdb)
# 결측치 제거 확인
colSums(is.na(imdb2))
- complete.cases() : 행에 누락된 데이터가 없는(NA가 존재하지 않는)지를 확인해주는 함수, NA값은 False로 반환
# NA가 아닌 값만 반환됨
imdb3 <- imdb[complete.cases(imdb[,12]), ]
colSums(is.na(imdb3))
- dplyr의 filter() 사용해서 결측치 제거
imdb %>% filter(!is.na(imdb)) #!is.na NA가 없는 행만 출력
03. 결측치 대체
- is.na가 True인 값(즉, 결측치) 들에 대해 58.99 지정
imdb$Metascore2 <- imdb$Metascore
# 대체
imdb$Metascore2[is.na(imdb$Metascore2)] <- 58.99
04. 결측치 생략 계산
- mean(), sum()... 얘네들은 na값 있으면 계산 안 됨
mean(imdb$Revenue..Millions., na.rm =T)
더보기
사용 데이터 출처 / kaggle
https://www.kaggle.com/datasets/harshitshankhdhar/imdb-dataset-of-top-1000-movies-and-tv-showsIMDB Movies Dataset
Top 1000 Movies by IMDB Rating
www.kaggle.com
참고 서적 / 위키북스|Must Learning with R (개정판)
'R > preprocessing' 카테고리의 다른 글
R | 데이터프레임 중복제거(duplicated()) (0) | 2022.12.06 |
---|