프로그래밍/R
벡터에서 값을 추출할 때 NA(Missing Value)와 NULL의 처리
이자다
2023. 3. 16. 11:22
반응형
> ex <- c(1, 3, 5, 7, NA, 12)
> ex[ex < 10]
[1] 1 3 5 7 NA
> ex[ex %% 2 == 0]
[1] NA 12
ex 벡터에 미싱넘버를 추가하면 값을 추출할 때 항상 딸려나온다.
미싱 넘버는 말 그대로 무슨 값인지 모르는 값이다. 결측치다.
10보다 작은 수를 추출할 때 미싱넘버가 10보다 작을지 아닐지 모르니까 일단 추출할 때 포함시킨다.
짝수를 추출할 때 미싱넘버가 짝수일지 아닐지 모르니까 일단 추출할 때 포함시킨다.
때문에 미싱넘버가 섞인 벡터에서 미싱넘버를 제외하고 데이터를 추출하고 싶다면 이런 조건을 붙여야 한다.
> ex[ex %% 2 == 0 & !is.na(ex)]
[1] 12
이렇게 미싱넘버를 제하고 추출하도록 하면 정상적으로 짝수만 출력된다.
이번엔 벡터에 미싱넘버가 아니라 널 값을 줘보자
> ex1 <- c(1, 3, 7, NULL, 12)
> mean(ex1)
[1] 5.75
> mean(ex1, na.rm = T)
[1] 5.75
> ex1[ex1 %% 2 ==0]
[1] 12
> ex1[ex1 %% 2 ==0 & !is.null(ex1)]
[1] 12
> length(ex1)
[1] 4
null 값은 결측치, 무슨 값인지 모르는 값이 아니라 값이 존재하지 않는다는 뜻이다.
때문에 평균값을 구하는 mean을 널 값을 제거하고 시행해도, 그냥 시행해도 값이 똑같고.
짝수를 구할 때도 NA와 다르게 Null은 출력되지 않고.
벡터의 길이를 출력할 때는 아예 널 값이 제외된 길이가 출력된다.
반응형