[Rtips] tbl 자료형에서 소수점을 출력해보자

R tbl tibble digit options

options(pillar.sigfig=10) 함수는 tibble 자료형에서 소수점 자리수를 조절하는 기능을 제공합니다.

true
2018-08-22

한줄요약

  1. options(pillar.sigfig=10)

tidyverse 생태계는 R의 현재 부흥기를 이끌고 있습니다. magrittr 패키지가 쏘아올린 %>%(파이프 연산자)가 이렇게 될꺼라고 상상이나 했을까요. 해들리 위컴이 발표한 tidy data와 함께 tidyverse에서는 없는게 상상도 할 수 없는 것이 많습니다.

이런 tidyverse에서 data를 담당하는 패키지가 tibble입니다.

tibbletbl, tbl_df 등등의 자료형으로 표현됩니다. 위에 그림에도 보이는 것처럼 data.frame과 같은 역할을 하면서, 더 세련됬다고 할까요.

그 와중에 tibble의 출력을 담당하는 패키지가 pillar입니다.

# install.packages("pillar")
library(pillar)
x <- 123456789 * (10 ^ c(-3, -5, NA, -8, -10))
x
[1] 1.234568e+05 1.234568e+03           NA 1.234568e+00 1.234568e-02
pillar(x)
<pillar>
      <dbl>
123457.    
  1235.    
    NA     
     1.23  
     0.0123

마크다운에는 디테일이 표현되지 않아 사진을 첨부합니다.

3자리 마다 쉼표로 표시하는 관행을 출력해주기 위해, pillar 패키지는 밑줄을 사용합니다. 보기 참 좋아진거 같습니다!

그러다 보니… 소수점 표기의 출력 옵션이 기존의 data.frame과 다릅니다. 찾아보니 options(pillar.sigfig)를 조절하면 된다는군요!

options(pillar.sigfig)
## Error in options(pillar.sigfig) : object 'pillar.sigfig' not found
기본 값이 없는거 같습니다….(;;;) 패키지에는 3이 기본값이라고 하는데 어떻게 보는지 모르겠네요;;; 이젠 tibble에서 확인해 볼까요?
my_numbers <-  c(233, 486, 565, 785)
tbl_num <- tibble::tibble(
  big = 1000 * my_numbers + 23,
  stradle = my_numbers / 1000 + 100,
  small = my_numbers / 100000
)
tbl_num
# A tibble: 4 × 3
     big stradle   small
   <dbl>   <dbl>   <dbl>
1 233023    100. 0.00233
2 486023    100. 0.00486
3 565023    101. 0.00565
4 785023    101. 0.00785

출력을 보면 stradle 컬럼의 첫번째 데이터가 100.라고 되어 있습니다. 100이 아니고 100.이라고 출력해주면서 소수점 숫자가 있음을 알려주는데요. 관련 이슈도 있으니 읽어보시면 좋을 것 같구요.

options(pillar.sigfig = 7)
tbl_num
# A tibble: 4 × 3
     big stradle   small
   <dbl>   <dbl>   <dbl>
1 233023 100.233 0.00233
2 486023 100.486 0.00486
3 565023 100.565 0.00565
4 785023 100.785 0.00785

pillarsigfig 옵션은 사실 소수점에 해당하는 옵션이 아닙니다. 유효숫자에 대한 옵션이죠. 유효숫자는 또 큰 주제니까 다음에 다루기로 하구요.

pillar에서는 출력에 대한 옵션을 제공하고 있습니다.

한번 읽어보시면 취향껏 고치는데 도움이 되지 않을까요?ㅎㅎ

감사합니다.

Corrections

If you see mistakes or want to suggest changes, please create an issue on the source repository.

Reuse

Text and figures are licensed under Creative Commons Attribution CC BY-NC-ND 4.0. Source code is available at https://github.com/mrchypark/mrchypark.github.io, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".

Citation

For attribution, please cite this work as

Park (2018, Aug. 22). mrchypark: [Rtips] tbl 자료형에서 소수점을 출력해보자. Retrieved from https://mrchypark.github.io/post/rtips-tbl-자료형에서-소수점을-출력해보자/

BibTeX citation

@misc{park2018[rtips],
  author = {Park, Chanyub},
  title = {mrchypark: [Rtips] tbl 자료형에서 소수점을 출력해보자},
  url = {https://mrchypark.github.io/post/rtips-tbl-자료형에서-소수점을-출력해보자/},
  year = {2018}
}