pillar provides tools for styling columns of data, artfully using colour and unicode characters to guide the eye.
# pillar is installed if you install the tidyverse package:
install.packages("tidyverse")
# Alternatively, install just pillar:
install.packages("pillar")pillar is a developer-facing package that is not designed for
end-users. It powers the print() and format()
methods for tibbles. It also
and defines generics and helpers that are useful for package authors who
create custom vector classes (see https://github.com/krlmlr/awesome-vctrs#readme for
examples) or custom table classes (like dbplyr or sf).
library(pillar)
x <- 123456789 * (10^c(-3, -5, NA, -8, -10))
pillar(x)
#> <pillar>
#>       <dbl>
#> 123457.    
#>   1235.    
#>     NA     
#>      1.23  
#>      0.0123
tbl_format_setup(tibble::tibble(x))
#> <pillar_tbl_format_setup>
#> <tbl_format_header(setup)>
#> # A tibble: 5 × 1
#> <tbl_format_body(setup)>
#>             x
#>         <dbl>
#> 1 123457.    
#> 2   1235.    
#> 3     NA     
#> 4      1.23  
#> 5      0.0123
#> <tbl_format_footer(setup)>The primary user of this package is tibble, which lets pillar
do all the formatting work. Packages that implement a data type to be
used in a tibble column can customize the display by implementing a
pillar_shaft() method.
library(pillar)
percent <- vctrs::new_vctr(9:11 * 0.01, class = "percent")
pillar_shaft.percent <- function(x, ...) {
  fmt <- format(vctrs::vec_data(x) * 100)
  new_pillar_shaft_simple(paste0(fmt, " ", style_subtle("%")), align = "right")
}
pillar(percent)
#> <pillar>
#> <percent>
#>       9 %
#>      10 %
#>      11 %See vignette("pillar", package = "vctrs") for
details.
pillar provides various extension points for customizing how a tibble-like class is printed.
tbl <- vctrs::new_data_frame(list(a = 1:3), class = c("my_tbl", "tbl"))
tbl_sum.my_tbl <- function(x, ...) {
  c("Hello" = "world!")
}
tbl
#> # Hello: world!
#>       a
#>   <int>
#> 1     1
#> 2     2
#> 3     3See vignette("extending", package = "pillar") for a
walkthrough of the options.
Please note that the pillar project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.