데이터분석 with R_데이터 정제

김유림·2021년 9월 5일
0

R

목록 보기
4/5
post-thumbnail

영원히 고통 받는 INFP의 메모장입니다
> feat. 국비교육

전처리에서 중요한 부분인 데이터 정제 🕵️‍♀️ 복습 시작!
쉽게 배우는 R 데이터 분석 교재로 복습합니다

결측치 는 누락된 값, 비어 있는 값으로 데이터 수집 과정에서 발생한 오류로 인해 생성될 수 있다. 해당 값을 잘 처리하지 않으면 분석 결과가 왜곡될 수 있기 때문에 실제 데이터 분석을 진행할 때 결측치를 확인하고 제거하는 과정을 거쳐야 한다!

🔍 결측치 찾기 & 제거하기

df <- data.frame(sex = c('M','F',NA,'M',F),
                 score = c(5,4,3,4,NA))
table(is.na(df))
# df 데이터에 몇 개의 결측치가 있는지 알 수 있다

df_nomiss <- df %>% filter(!is.na(score) & !is.na(sex))
df_nm <- na.omit(df)
# filter 함수를 사용할 수도 있지만
# na.omit() 함수를 통해 간편하게 제거할  있다
# ->결측치가 포함된 행 전체를 삭제하기 때문에 필요한 값이 누락될 수 있어 주의해야 한다

mean(df$score,na.rm = T)
# 연산할 때 결측치를 제외한다, NA Remove

exam %>% summarise(mean_math = mean(math,na.rm = T))
# 동일한 방법으로 summarise 함수에도 사용할 수 있다

✔️ 결측치 대체하기

exam$math <- ifelse(is.na(exam$math),55,exam$math)
# 결측치를 제거하는 대신 대체 값 (일반적으로 평균값으로 대체)

✖️ 이상치 제거하기

이상치 는 정상 범주에서 벗어난 값을 의미한다! 이상치는 데이터 수집 과정에서 발생한 오류일 수도 있고, 실제 존재하는 극단적인 값일 수도 있지만 올바른 분석 결과를 얻기 위해 분석 과정에서 이상치를 제거한다☠️

boxplot(mpg$hwy)

상자 그림을 활용하면 이상치(=극단치)가 존재하는 것을 알 수 있다

boxplot(mpg$hwy)$stats
# 해당 데이터의 아래쪽 극단치 경계, 1사분위수, 중앙값, 3사분위수, 위쪽 극단치 경계
# 따라서 아래쪽 경계보다 작거나 위쪽 경계보다 큰 값을 극단치로 정의할 수 있다

mpg$hwy <- ifelse(mpg$hwy < 12 | mpg$hwy > 37, NA, mpg$hwy)
# 이상치를 결측 처리를 해준다

mpg %>% 
  group_by(drv) %>% 
  summarise(mean_hwy = mean(hwy,na.rm = T))
# 그럼 간단하게 이상치였던 값을 빼고 데이터 분석을 진행할 수 있다
profile
Hallo welt!

0개의 댓글