Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the fmt_partsper() function #914

Merged
merged 36 commits into from
Apr 27, 2022
Merged

Add the fmt_partsper() function #914

merged 36 commits into from
Apr 27, 2022

Conversation

rich-iannone
Copy link
Member

@rich-iannone rich-iannone commented Mar 23, 2022

With the new fmt_partsper() function, we can now format values as high-ratio, dimensionless quantities. These are less common that percentage values but no less important (some of these are used extensively, depending on the field of study). The list of formats (with their associated keywords) are:

  • "per-mille": Per mille, (1 part in 1,000)
  • "per-myriad": Per myriad, (1 part in 10,000)
  • "pcm": Per cent mille (1 part in 100,000)
  • "ppm": Parts per million, (1 part in 1,000,000)
  • "ppb": Parts per billion, (1 part in 1,000,000,000)
  • "ppt": Parts per trillion, (1 part in 1,000,000,000,000)
  • "ppq": Parts per quadrillion, (1 part in 1,000,000,000,000,000)

The function is structured similarly to fmt_percent() but there is some flexibility here to provide a replacement symbol if needed (e.g., ppm -> ppmV).

Here is an example with per mille formatting:

library(gt)
library(tidyverse)

dplyr::tibble(x = 0:-5, a = 10^(0:-5), b = a) %>%
  gt(rowname_col = "x") %>%
  fmt_scientific(a, decimals = 0) %>%
  fmt_partsper(
    columns = b,
    to_units = "per-mille"
  )

per-mille-formatting

Fixes: #608

* master:
  Make changes based on code review
  Correct stopifnot stmts
  Make changes based on code review
  Make corrections based on code review
  Don't show ind suffix for is.infinite(x) or x == 0
  Simplify formatting in Ind number system
  Revise docs for `insert_seps_ind()` util fn
  Refactor insertion point calculation
  Add missing space
  Update test-fmt_percent.R
  Update test-fmt_fraction.R
  Update utils_formatters.R
  Update format_data.R
  Add several testthat tests
  Update help files using roxygen
  Ensure that 'ind' system produces suffixes
  Simplify formatting of integers
  Implement Indian numbering system support
@rich-iannone rich-iannone marked this pull request as ready for review March 23, 2022 18:19
Copy link
Member

@jcheng5 jcheng5 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Rename fmt_ratio to fmt_partsper
  2. Take out the changes to context_symbol_str, leave that to (eventually) be currency-only

@rich-iannone rich-iannone changed the title Add the fmt_ratio() function Add the fmt_partsper() function Apr 8, 2022
@jcheng5 jcheng5 self-requested a review April 26, 2022 21:22
@rich-iannone rich-iannone merged commit dc02343 into master Apr 27, 2022
@rich-iannone rich-iannone deleted the fmt-per branch April 27, 2022 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add the fmt_partsper() function
2 participants