How can I display trailing zeros when printing a tibble? For example, I would like mtcars[1, 5]
to display as 3.90, mtcars[8, 7]
to display as 20.00, etc. pillar.sigfig = foo
does not seem to influence the printing behavior.
print(
tibble::as_tibble(mtcars),
pillar.sigfig = 4
)
#> # A tibble: 32 x 11
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # … with 22 more rows
Created on 2019-01-18 by the reprex package (v0.2.1)
mara
January 23, 2019, 2:03pm
2
Partial non-answer, with some hints for where you might find more info:
pillar.sigfig
does influence the printing behaviour (see reprex below with, e.g. qseq
for the first record is 16.46), but won't get you the trailing zeros you're looking for.
library(tibble)
x <- tibble::as_tibble(mtcars)
withr::with_options(
list(pillar.sigfig = 4),
print(x)
)
#> # A tibble: 32 x 11
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.46 0 1 4 4
#> 2 21 6 160 110 3.9 2.875 17.02 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
#> 8 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
#> # … with 22 more rows
Created on 2019-01-23 by the reprex package (v0.2.1.9000)
Adapted the example above from:
opened 01:37PM - 12 Mar 18 UTC
closed 08:36AM - 24 May 18 UTC
Consider the following tibble. `x` is a real-life valid set of prices for certai… n futures contracts out there (only valid in discrete increments of `1/128`) and `y` is a set of real-life valid prices for a run of the mill stock.
```
(x = tibble(x=99+0:3*1/128, y=50+0:3*0.01))
#A tibble: 4 x 2
x y
<dbl> <dbl>
1 99.0 50.0
2 99.0 50.0
3 99.0 50.0
4 99.0 50.0
```
My guess is the above comes from the default value of `pillar.sigfig` being 3. A `data.frame` print looks like this:
```
x y
1 99.0000000 50.00
2 99.0078125 50.01
3 99.0156250 50.02
4 99.0234375 50.03
```
Thanks to a wide enough setting in `getOption("digits")`. It is pretty important to not round these prices as that could be quite misleading. For the tibble, If i do `options(sigfig=10)` to get around this, I get this:
```
#A tibble: 4 x 2
x y
<dbl> <dbl>
1 99.00000000 50.00000000
2 99.00781250 50.01000000
3 99.01562500 50.02000000
4 99.02343750 50.03000000
```
There is an abundance now of trailing zeroes, which in a wider tibble with many different columns can get very nasty very quickly. The best "hack" I have at the moment to work around this display for my data is the following highly undesirable override in my Rprofile:
`print.tbl_df <- function(x) print(as.data.table(x)) #forego the nice features like subtle, bold headers, and column data types :(`
There's a pretty lengthy discussion of the trailing-zero behaviour here:
opened 04:14PM - 04 Sep 17 UTC
closed 12:48AM - 09 Apr 18 UTC
``` r
colformat::colformat(c(1000.34, 0.34567))
#> <dbl>
#> 1000
#> … 0.346
```
@hadley: Is this intended?
system
Closed
February 13, 2019, 2:03pm
3
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed. If you have a query related to it or one of the replies, start a new topic and refer back with a link.