Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/r-lib/pillar
Format columns with colour
https://github.com/r-lib/pillar
colour r
Last synced: 4 days ago
JSON representation
Format columns with colour
- Host: GitHub
- URL: https://github.com/r-lib/pillar
- Owner: r-lib
- License: other
- Created: 2017-05-15T19:04:32.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-11-23T20:52:08.000Z (19 days ago)
- Last Synced: 2024-11-23T23:57:41.225Z (18 days ago)
- Topics: colour, r
- Language: R
- Homepage: https://pillar.r-lib.org/
- Size: 13.3 MB
- Stars: 178
- Watchers: 11
- Forks: 37
- Open Issues: 49
-
Metadata Files:
- Readme: .github/README.md
- Changelog: NEWS.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- jimsghstars - r-lib/pillar - Format columns with colour (R)
README
# [pillar](https://pillar.r-lib.org/)
[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable) [![R build status](https://github.com/r-lib/pillar/workflows/R-CMD-check/badge.svg)](https://github.com/r-lib/pillar/actions) [![Coverage status](https://codecov.io/gh/r-lib/pillar/branch/master/graph/badge.svg)](https://codecov.io/github/r-lib/pillar?branch=master) [![CRAN status](https://www.r-pkg.org/badges/version/pillar)](https://cran.r-project.org/package=pillar)
pillar provides tools for styling columns of data, artfully using colour and unicode characters to guide the eye.
Due to limitations of GitHub's Markdown display, formatting cannot be shown in the README.
The same content is available on with proper formatting.## Installation
# pillar is installed if you install the tidyverse package:
install.packages("tidyverse")# Alternatively, install just pillar:
install.packages("pillar")## Usage
pillar is a developer-facing package that is not designed for end-users. It powers the [`print()`](https://rdrr.io/r/base/print.html) and [`format()`](https://rdrr.io/r/base/format.html) methods for [tibble](https://tibble.tidyverse.org/)s. It also and defines generics and helpers that are useful for package authors who create custom vector classes (see for examples) or custom table classes (like [dbplyr](https://dbplyr.tidyverse.org/) or [sf](https://r-spatial.github.io/sf/)).
library(pillar)x <- 123456789 * (10 ^ c(-3, -5, NA, -8, -10))
pillar(x)
#> <pillar>
#> <dbl>
#> 123457.
#> 1235.
#> NA
#> 1.23
#> 0.0123tbl_format_setup(tibble::tibble(x))
#> <pillar_tbl_format_setup>
#> <tbl_format_header(setup)>
#> # A data frame: 5 × 1
#> <tbl_format_body(setup)>
#> x
#> <dbl>
#> 1 123457.
#> 2 1235.
#> 3 NA
#> 4 1.23
#> 5 0.0123
#> <tbl_format_footer(setup)>## Custom vector classes
The primary user of this package is [tibble](https://github.com/tidyverse/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()`](https://pillar.r-lib.org/reference/pillar_shaft.html) 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")`](https://vctrs.r-lib.org/articles/pillar.html) for details.
## Custom table classes
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")`](https://pillar.r-lib.org/articles/extending.html) for a walkthrough of the options.
------------------------------------------------------------------------
## Code of Conduct
Please note that the pillar project is released with a [Contributor Code of Conduct](https://pillar.r-lib.org/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.