獨斷論

결측값(missing values)가 있는 행 전체를 삭제하기 (통계 R 잡다) 본문

과학과 기술/R 통계

결측값(missing values)가 있는 행 전체를 삭제하기 (통계 R 잡다)

부르칸 2014. 1. 10. 06:48

통계처리를 하기 위해 데이터를 모으다보면 missing value가 있는 subject 또는 observation이 있는 경우가 많다.

이를 해결하기 위해 가장많이 행하는 방법은 row-wise deletion 즉 어떤 변수에 결측값이 있기만 하면 그 행 전체를 버리는 것이다.


SUBJECTS, x1, x2,  y

1,         1,  34,  103

2,         3,  NA, 54

3,         5,  54,  NA

4,         7,  43,  49


만약 데이터가 위와 같다면 subjects 1과 4만 남기고 2와 3은 버린다.

이를 통계 R에서 complete.cases()라는 함수를 이용하면 쉽게 해결할수 있다.

> x = c(1, 2, NA, 4, 5, 6)
> y = c('a', 'b', 'c', NA, 'e', 'f')
> mvindex = complete.cases(x, y)
> mvindex
[1]  TRUE  TRUE FALSE FALSE  TRUE  TRUE
> x[mvindex]
[1] 1 2 5 6
> y[mvindex]
[1] "a" "b" "e" "f"
>


R에서 기본적으로 제공하는 airquality라는 데이터를 이용해보자.

> airquality

##결과 생략

> mvindex = complete.cases(airquality)
> mvindex
## 결과 생략

> myair = airquality[mvindex, ]
> myair
##결과 생략..


직접확인해보면 알겠지만 NA가 있는 행은 모두 제거되어  myair에 저장되었음을 알수있다.

Comments