聰明不如鈍筆
총명불여둔필
assignment KindeR

R에서 e 없이 숫자 표시하기(feat. options)

R를 쓰다 보면 이 그림처럼 숫자가 바꿔서 당황스러울 때가 있습니다.

 

숫자를 이런 식으로 표현하는 걸 흔히 '과학적 기수법' 또는 '과학적 표기법'이라고 부릅니다.

 

이 표기법은 기본적으로 모든 숫자를 $m \times 10^n$ 형태로 표시합니다.

 

중학교 수학 시간에 배운 것처럼 이때 n을 지수(指數)라고 부릅니다.

 

이 지수는 나타내는 영어 표현이 바로 'exponent'입니다.

 

R 또는 마이크로소프트(MS) 엑셀처럼 숫자를 다루는 컴퓨터 프로그램에서 아주 크거나 작은 숫자를 표시할 때 e(또는 E)가 등장하는 이유입니다.

 

e가 나올 때는 뒤에 나오는 숫자(n)까지 합쳐서 $ \times 10^n$ 이라고 생각하시면 됩니다.

 

그러니까 위에 있는 숫자는 $ 1 \times 10^5 = 100000$이 되는 겁니다.

 

같은 이치로 1e-08은 $ 1 \times 10^{-8} = 0.00000001$이 됩니다.

 

이런 표기법을 활용하면 아주 크거나 작은 숫자도 간단하게 표시할 수 있지만 (저 같은 문과충이) 읽기에는 불편한 게 사실.

 

특히 아래 그림처럼 그래프에 숫자가 이런 식으로 나오면 보기 좋다고 하기가 쉽지 않습니다.

 

이럴 때 제일 간단한 해결책은 options() 함수를 활용하시는 방법입니다. 'options(scipen=숫자)'처럼 코드를 입력하시면 됩니다.

 

예컨대 원래 R 콘솔에 100000를 입력하면 위에서 본 것처럼 아래처럼 숫자를 출력합니다.

100000
[1] 1e+05

 

그러나 'options(scipen=숫자)'에서 숫자에 충분히 큰 숫자(ex 999)를 입력하면 원래 숫자를 그대로 반환합니다.

options(scipen=999)
100000
[1] 100000

 

이렇게 옵션을 바꾼 다음 같은 그래프를 그리면 위에서 지수로 표시했던 걸 일반 숫자로 바꾼 걸 확인할 수 있습니다.

 

 

이렇게 바꾸고 났는데 원래대로 돌리고 싶으실 때는 'options(scipen=0)'을 입력하시면 됩니다.

options(scipen=0)
100000
[1] 1e+05

 

일부분만 표기를 바꾸고 싶으실 때는 format() 함수를 활용하시면 됩니다.

 

이 함수에 scientific 속성을 FALSE로 바꾸시면 과학적 표기법이 보통 숫자로 바뀝니다. 기본 옵션은 TRUE입니다.

format(100000)
[1] "1e+05"
format(100000, scientific=TRUE)
[1] "1e+05"
format(100000, scientific=FALSE)
[1] "100000"

 

그럼 갑자기 숫자가 이상하게 떴다고 당황하지 마시고 마시고 모두들 Happy Coding!

 

댓글,

KindeR | 카테고리 다른 글 더 보기