close_btn
조회 수 50921 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

결측치를 처리하는 방법 중 가장 간단한 방법으로 결측치를 제거하는 방법이 있습니다. 이를 아주 간편하게 할 수 있게 도와주는 함수가 바로 complete.cases 입니다. 설정한 관측치에 특정칼럼이 결측치인 경우 그 관측치를 제거하기 위해서 complete.cases를 이용하면 됩니다 !

 

#####################################################################################

x <- airquality[, -1] # x is a regression design matrix
head(x)
dim(x)

y <- airquality[, 1] # y is the corresponding response
head(y)

ok <- complete.cases(x, y)
ok

sum(!ok) # how many are not "ok" ?

x <- x[ok,]
x
dim(x)

y <- y[ok]
y

 

> head(x)
Solar.R Wind Temp Month Day
1 190 7.4 67 5 1
2 118 8.0 72 5 2
3 149 12.6 74 5 3
4 313 11.5 62 5 4
5 NA 14.3 56 5 5
6 NA 14.9 66 5 6
> dim(x)
[1] 153 5
>
> y <- airquality[, 1] # y is the corresponding response
> head(y)
[1] 41 36 12 18 NA 28

위와 같은 자료를 사용합니다. 이 때 head 함수를 통해 x 와 y를 살펴보면 x 의 경우 5번째와 6번째에 NA(결측치)까 존재하고 y의 경우 4번째에 존재함을 알 수 있습니다. 우리는 이 둘 중 어느하나라도 결측치가 존재하면 해당 관측치를 제거하고자 합니다 ! 현재 관측치의 수는 153개 입니다.

 

> ok <- complete.cases(x, y)
> ok
[1] TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
[27] FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE
[53] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE
[79] TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE
[105] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[131] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE
> sum(!ok)
[1] 42

complete.cases를 활용하고 ok에 저장하여 sum(!ok)를 통해 결측치가 존재하는 관측치의 개수를 세어보니 42개입니다.

> x <- x[ok,]
> head(x)
Solar.R Wind Temp Month Day
1 190 7.4 67 5 1
2 118 8.0 72 5 2
3 149 12.6 74 5 3
4 313 11.5 62 5 4
7 299 8.6 65 5 7
8 99 13.8 59 5 8
> dim(x)
[1] 111 5
> y <- y[ok]
> y
[1] 41 36 12 18 23 19 8 16 11 14 18 14 34 6 30 11 1 11 4 32 23 45 115 37 29 71 39 23 21 37 20 12 13 135 49 32 64 40 77 97
[41] 97 85 10 27 7 48 35 61 79 63 16 80 108 20 52 82 50 64 59 39 9 16 122 89 110 44 28 65 22 59 23 31 44 21 9 45 168 73 76 118
[81] 84 85 96 78 73 91 47 32 20 23 21 24 44 21 28 9 13 46 18 13 24 16 13 23 36 7 14 30 14 18 20

ok가 NA 가 존재하지 않는 관측치에 TRUE 값을 가지므로 이를 index로 활용하여 NA가 존재하는 관측치를 제거해보니 위와 같이 NA가 제거되었고 153개 중 42개가 제거된 111개의 관측치가 남아있게 됩니다.

 

 

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 초급 R 강의 게시판 이용 관련 공지사항 1 DataMarket 2014.05.21 511914
50 초급 [BigData - R강의 초급] 정규표현식 regular expression 4강 (1) – Anchors "^", "$" 2 DataMarket2 2014.05.23 101682
49 초급 [BigData - R강의 초급] 정규표현식 regular expression 3강 – alternation "|" DataMarket2 2014.05.23 96708
48 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(4) – 게으른 수량자 "+?", "*?", "{n,}?" 1 DataMarket2 2014.05.23 110274
47 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(3) – 수량자 "?" 1 DataMarket2 2014.05.23 109654
46 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(2) – 수량자 {} 1 DataMarket2 2014.05.23 104349
45 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(1) – 수량자 “+”, “*” DataMarket2 2014.05.23 107124
44 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(4) – 문자열 형태표현 ".", "\W", "\D", "\S" DataMarket2 2014.05.23 94864
43 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(3) – 문자열 형태표현 "\p{Hangul}"(한글), 특수문자 2 DataMarket2 2014.05.23 102199
42 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(2) – 문자열 형태표현 “\d”, “\s” DataMarket2 2014.05.23 93639
41 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(1) – 문자열 형태표현 ".", "\w" 3 DataMarket2 2014.05.23 113697
40 초급 [BigData - R강의 초급] 따옴표를 문자열로 인식시키려면? - escaper \ DataMarket2 2014.05.23 69633
39 초급 [BigData - R강의 초급] 문자열 패턴 regular expression 연습 DataMarket2 2014.05.23 70279
38 초급 [BigData - R강의 초급] 문자열 검색 – grep, regexpr, gregexpr DataMarket2 2014.05.23 100683
37 초급 [BigData - R강의 초급] 문자열 찾아바꾸기 – sub, gsub 1 DataMarket2 2014.05.23 90892
36 초급 [BigData - R강의 초급] 문자열 나누기 – strsplit, str_split DataMarket2 2014.05.23 105944
35 초급 [BigData - R강의 초급] 문자열 일부 추출 – substr(), str_sub() 비교 2 DataMarket2 2014.05.23 102213
34 초급 [BigData - R강의 초급] 문자열 포멧 출력 – sprintf 함수 1 DataMarket2 2014.05.23 59766
33 초급 [BigData - R강의 초급] 문자열 길이 – nchar 함수 1 DataMarket2 2014.05.23 57838
32 초급 [BigData - R강의 초급] 문자열 이어붙이기 - paste, paste0 함수 1 DataMarket2 2014.05.23 69632
» 초급 [BigData - R강의 초급] 결측치 처리 함수 - complete.cases DataMarket2 2014.05.23 50921
Board Pagination ‹ Prev 1 2 ... 3 Next ›
/ 3

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5