데이터를 가공하다 보면 NA값이나 Inf 값등이 나올 때가 있습니다.
이 값들을 그대로 가져가는 경우도 있지만, 무조건 제거 또는 다른값으로 대체 해주어야 하는 경우가 있습니다.
우선 0을 1로 나누면 0 값이 출력이 됩니다. 그런데 0을 0으로 나누면 NA값이 나옵니다.
NA값인지 판단하기 위해선 is.na 함수를 이용하여야 합니다.
0/1
0/0
is.na(0/0)
x2<-c(NA,NA,3)
is.na(x2)
is.na를 쓰면 아래와 같이 TRUE FALSE값을 반환해줍니다.
NA를 빼고 출력하거나 NA에 0을 삽입하고 싶은 경우에는 다음 코드를 이용해서 할 수 있습니다.
x2[!is.na(x2)] ## NA 빼고 출력
x2[is.na(x2)] <- 0 ## NA에 0 삽입
x2
1을 0으로 나누면 Infinite(무한대) 값이 나오게 되고 -1을 0으로 나누면 -Infinite 값이 나오게 됩니다.
데이터를 가지고 새로운 변수 (파생 변수)를 만들다 보면 값에 따라 이렇게 NA, Inf값이 나올수 있습니다.
Infinite값인지 검증하기 위해서는 is.infinite 라는 함수를 이용합니다.
is.infinite함수는 Inf와 -Inf 한꺼번에 검증이 가능합니다.
1/0
-1/0
x2<-c(Inf,Inf,-Inf,-Inf,2,3,4)
is.infinite(x2)
x2[!is.infinite(x2)]
반응형
'R프로그래밍' 카테고리의 다른 글
R프로그래밍 - 회귀분석에서의 성능 지표 MSE, MAE, MAPE (0) | 2022.05.22 |
---|---|
R프로그래밍 - 문자열 대체 함수 gsub [], () <> 없애기 (1) | 2020.07.03 |
R프로그래밍 - AND, OR, NOT 연산자 (0) | 2020.07.02 |
R프로그래밍 - 현재 날짜 또는 시간 가져오는 함수 Sys.time / Sys.Date (0) | 2020.07.02 |
R프로그래밍 - 코드 실행 시키지 않게 유지시키는 Sys.sleep 함수 (0) | 2020.07.02 |
댓글