R, 결측치 처리 (Missing value, NA) Start.
BioinformaticsAndMe
#R 작업시 발생하는 결측치 (missing value)를 다뤄보자.
-R 프로그래밍에서 결측지(missing value)는 NA (Not Available) 라는 문자로 처리해야 한다. NaN (Not a Number)는 분모를 0으로 나누는 것과 같이 계산이 불가능 할 경우 출력되는 문자다.
> y <- c(1,2,3, NA)
> y
[1] 1 2 3 NA
#is.na()는 벡터의 결측지가 존재할 경우 true
> is.na(y)
[1] FALSE FALSE FALSE TRUE
> summary(y)
#특정 값을 NA로 바꾸기 (-999 -> NA )
> ages <- c(48, 78, 56, 88, -999, 13, 26, -999)
> ages[ ages == -999] <- NA
> ages
[1] 48 78 56 88 NA 13 26 NA
#결측지(missing value)가 하나라도 포함된 데이터가 존재할 경우 연산의 결과 역시 NA가 된다. 따라서 함수 역시 아래와 같이 NA가 결과로 나온다.
> sum(ages)
[1] NA
> mean(ages)
[1] NA
#NA 데이터를 제외하고 연산하고 싶을 경우 na.rm = TRUE 매개변수를 넣어주면 된다.
> sum(ages, na.rm = TRUE)
[1] 309
> mean(ages, na.rm=TRUE)
[1] 51.5
#결측치 (missing value) 실습 예제
> weight <- c(65.4, 55, 380, 72.2, 51, NA)
> height <- c(170, 155, NA, 173, 161, 166)
> gender <- c("M", "F","M","M","F","F")
> testDate <- c("2013/09/01", "2013/09/01", "2013/09/05", "2013/09/14", "2013/10/11", "2013/10/26")
> patients <- data.frame( weight = weight, height=height, gender=gender, testDate=testDate)
# complete.cases(patients) # NA가 존재하는 경우 FALSE를 리턴
[1] TRUE TRUE FALSE TRUE TRUE FALSE
#patients[complete.cases(patients),] # complete.cases 함수 리턴값이 참인 경우를 출력하는 방법
weight height gender testDate
1 65.4 170 M 2013/09/01
2 55.0 155 F 2013/09/01
4 72.2 173 M 2013/09/14
5 51.0 161 F 2013/10/11
R, 결측치 처리 (Missing value, NA) End.
BioinformaticsAndMe
'R' 카테고리의 다른 글
R 상관분석 (R correlation test) (0) | 2018.08.10 |
---|---|
막대그래프 (Barplot) (0) | 2018.08.06 |
R, Command line interface Ⅱ (0) | 2018.07.20 |
R, Command line interface Ⅰ (0) | 2018.07.16 |
R, RStudio 설치 (0) | 2018.07.14 |