The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
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 3
See 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.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.