본문 바로가기
PROGRAMMING/R

[R] is.na, complete.cases, na.omit 결측치 확인, 수정, 제거

by HYUNHP 2022. 1. 29.
반응형

안녕하세요, HELLO

데이터 분석에서 결측치는 분석 결과에 왜곡, 오류 등을 발생할 수 있기에 수정, 대체, 삭제 등의 전처리가 필요합니다. 이러한 결측치는 데이터 수집 과정에서 오류, 무응답 혹은 의미 없는 값 그리고 수학적으로 계산이 불가능한 값 등이 해당됩니다. 오늘은 결측치를 R에서 확인, 수정 그리고 제거하는 방법에 대해서 정리하고자 합니다.

 


STEP 1. '결측치' 개념

STEP 2. '결측치' 확인

STEP 3. '결측치' 처리


STEP 1. '결측치' 개념

결측치는 분석 결과에 왜곡, 오류 등을 발생할 수 있기에 수정, 대체, 삭제 등의 전처리가 필요합니다. 이러한 결측치는 데이터 수집 과정에서 오류, 무응답 혹은 의미 없는 값일 수도 있습니다. 이러한 결측치를 아래처럼 정리해봤습니다.


STEP 2. '결측치' 확인

 

 is.na 함수

 

결측치를 확인하는 방법 중에는 변수 중에 NA 값이 있는지를 확인하는 방법이 있습니다.

 

# is.na()

# 각각의 항목에 대해서 결측치 확인
is.na(데이터프레임$column)

# sum 함수를 통해 결측치 개수를 확인
sum(is.na(dataframe$column))

 

is.na 함수는 각각의 항목에 대해서 결측치 여부를 보여주기에 많은 양의 데이터에 대해서는 아래처럼 전체에 대해 결측치를 점검하기에, 가시적으로 확인하기에는 한계점이 있습니다.

그래서 이런 경우에는 결측치가 몇 개인지를 확인하기 위해, sum(is.na(dataframe$column)) 등의 방식을 통해 결측치가 몇 개인지 확인할 수 있습니다.


□ complete.cases 함수

 

is.na 함수가 데이터 각각에 대해서 검토하였다면, complete.cases 함수데이터 전체에서 결측치 값이 있는지 확인하는 함수입니다. 함수를 실행하면 관측치(row, 행)에 누락된 데이터가 없다면 TRUE을 반환하고, 누락된 데이터가 존재한다면 FALSE를 반환해 줍니다.

 

# 변수 중에 결측치가 있는 지 확인
complete.cases(dataframe$column)

STEP 3. '결측치' 처리

□ 결측치 수정

 

결측치 확인을 통해, 누락되거나 오류 값을 수정할 수 있습니다. 여러 방법 중에 결측치를 수정하는 방법에 대해서 정리해 보겠습니다.

 

# 결측치를 제외한 '평균(mean)'값을 결측치에 대체하는 방법
dataframe$column[is.na(dataframe$column)] <- mean(dataframe$column, na.rm = TRUE)

# 결측치를 제외한 '중간값(median)'값을 결측치에 대체하는 방법
dataframe$column[is.na(dataframe$column)] <- median(dataframe$column, na.rm = TRUE)

 

mean 함수와 median 함수의 na.rm 인자는 평균, 중간값을 계산함에 있어 NA 값을 제외할지 여부를 지정하는 값입니다. TRUE로 설정하면 NA 값을 제외할 수 있고, 반대로 FALSE로 설정하면 NA 값을 포함해서 계산하게 됩니다. 결측치 수정할 때 NA 값을 제외하고자 하는 경우에는 na.rm = TRUE로 설정하면 됩니다.


□ 결측치 제거

 

결측치가 있는 관측치(행, row)를 전부 삭제하고자 하는 경우에는 na.omit 함수를 사용하면 됩니다. 다만, 삭제하게 되면 해당 관측 값을 사용할 수 없기에, 행 자체를 삭제하기보다는 결측치를 수정해서 사용하는 것을 고려한 후에 제거를 고려하시기 바랍니다.

 

# NA 값 있는 행 자체를 제거
na.omit(dataframe)

■ 마무리

'결측치를 R에서 확인, 수정 그리고 제거하는 방법'에 대해서 알아봤습니다.

좋아요댓글 부탁드리며,

오늘 하루도 즐거운 날 되시길 기도하겠습니다 :)

감사합니다.

반응형

댓글