티스토리 뷰

R

R | format()을 이용해 numeric vector다루기

Chloe A_Choe 2020. 3. 26. 17:34

string을 다루는 데 사용하는 함수는 여러 가지가 있습니다. 그중에서 숫자에 반점을 찍는데 유용하게 사용할 수 있는 format() 함수의 사용방법을 연습해봤습니다.

 

다양한 R의 함수를 알고싶다면 > Handling strings with R 


1. 원하는 자리수 마다 반점(comma) 찍기

> N <- c(1, 12345, 123456789)

> format(N)
[1] "        1" "    12345" "123456789"

> format(N, big.mark = ',')
[1] "          1" "     12,345" "123,456,789"

> format(N, big.mark = ',', big.interval = 2)
[1] "            1" "      1,23,45" "1,23,45,67,89"

format() 함수가 좋은 점은 다음과 같이 원하는 자릿수마다 반점을 찍기에 유용합니다. 여기서 big.mark값을 변경해서 반점 대신에 공백을 넣을 수도, 하이픈(-)을 넣을수도 있습니다. 또한 big.interval 값을 변경해서는 그 빈도를 바꿔줄 수도 있죠.

2. 숫자 앞 공백 만들기

> format(1:10)
 [1] " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" "10"

> format(1:10, width = 4)
 [1] "   1" "   2" "   3" "   4" "   5" "   6" "   7" "   8" "   9" "  10"

> format(1:10, trim = TRUE)
 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"

format()에 다양한 크기의 숫자 벡터를 넣어주면 가장 긴 숫자의 자릿수에 맞춰서 자동으로 오른쪽 정렬이 되고, 왼쪽에는 공백이 생깁니다. 이런 경우 trim=TRUE값을 이용해 제거해 줄 수도 있고, width값을 이용해 공백을 조절할 수도 있습니다.

3. 원하는 자릿수만큼 표기하기

> format(13.7)
[1] "13.7"

> format(13.7, nsmall = 3)
[1] "13.700"

> format(c(6.0, 13.1), digits = 2)
[1] " 6" "13"

> format(c(6.0, 13.1), digits = 2, nsmall = 2)
[1] " 6.00" "13.10"

nsmall값을 이용해서는 원하는 소수점 자릿수까지 0으로 표기를 해 줄 수 있습니다. 또한 digits값으로 전체 숫자의 자릿수를 변경해줄 수도 있습니다.

4. 자연상수 표기

> format(2^31-1)
[1] "2147483647"

> format(2^31-1, scientific = TRUE)
[1] "2.147484e+09"

scientific값을 이용해서는 자연상수가 들어간 값으로 쉽게 바꿔줄 수 도 있습니다.

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함