Wherever there are numerical data that are very large in value, replacement
text may be better for explanatory purposes. sub_large_vals() allows for
this replacement through specification of a threshold, a large_pattern,
and the sign (positive or negative) of the values to be considered.
Usage
sub_large_vals(
  data,
  columns = everything(),
  rows = everything(),
  threshold = 1e+12,
  large_pattern = ">={x}",
  sign = "+"
)Arguments
- data
- The gt table data object - obj:<gt_tbl>// required- This is the gt table object that is commonly created through use of the - gt()function.
- columns
- Columns to target - <column-targeting expression>// default:- everything()- The columns to which substitution operations are constrained. Can either be a series of column names provided in - c(), a vector of column indices, or a select helper function (e.g.- starts_with(),- ends_with(),- contains(),- matches(),- num_range(), and- everything()).
- rows
- Rows to target - <row-targeting expression>// default:- everything()- In conjunction with - columns, we can specify which of their rows should form a constraint for targeting operations. The default- everything()results in all rows in- columnsbeing formatted. Alternatively, we can supply a vector of row IDs within- c(), a vector of row indices, or a select helper function (e.g.- starts_with(),- ends_with(),- contains(),- matches(),- num_range(), and- everything()). We can also use expressions to filter down to the rows we need (e.g.,- [colname_1] > 100 & [colname_2] < 50).
- threshold
- Threshold value - scalar<numeric|integer>// default:- 1E12- The threshold value with which values should be considered large enough for replacement. 
- large_pattern
- Pattern specification for large values - scalar<character>// default:- ">={x}"- The pattern text to be used in place of the suitably large values in the rendered table. 
- sign
- Consider positive or negative values? - scalar<character>// default:- "+"- The sign of the numbers to be considered in the replacement. By default, we only consider positive values ( - "+"). The other option (- "-") can be used to consider only negative values.
Examples
Let's generate a simple, single-column tibble that contains an assortment of values that could potentially undergo some substitution.
tbl <- dplyr::tibble(num = c(0, NA, 10^(8:14)))
tbl
#> # A tibble: 9 x 1
#>     num
#>   <dbl>
#> 1  0
#> 2 NA
#> 3  1e 8
#> 4  1e 9
#> 5  1e10
#> 6  1e11
#> 7  1e12
#> 8  1e13
#> 9  1e14The tbl object contains a variety of larger numbers and some might be
larger enough to reformat with a threshold value. With sub_large_vals() we
can do just that:
tbl |>
  gt() |>
  fmt_number(columns = num) |>
  sub_large_vals()
Large negative values can also be handled but they are handled specially by
the sign parameter. Setting that to "-" will format only the large values
that are negative. Notice that with the default large_pattern value of
">={x}" the ">=" is automatically changed to "<=".
tbl |>
  dplyr::mutate(num = -num) |>
  gt() |>
  fmt_number(columns = num) |>
  sub_large_vals(sign = "-")
You don't have to settle with the default threshold value or the default
replacement pattern (in large_pattern). This can be changed and the
"{x}" in large_pattern (which uses the threshold value) can even be
omitted.
tbl |>
  gt() |>
  fmt_number(columns = num) |>
  sub_large_vals(
    threshold = 5E10,
    large_pattern = "hugemongous"
  )
See also
Other data formatting functions:
data_color(),
fmt(),
fmt_auto(),
fmt_bins(),
fmt_bytes(),
fmt_chem(),
fmt_country(),
fmt_currency(),
fmt_date(),
fmt_datetime(),
fmt_duration(),
fmt_email(),
fmt_engineering(),
fmt_flag(),
fmt_fraction(),
fmt_icon(),
fmt_image(),
fmt_index(),
fmt_integer(),
fmt_markdown(),
fmt_number(),
fmt_number_si(),
fmt_partsper(),
fmt_passthrough(),
fmt_percent(),
fmt_roman(),
fmt_scientific(),
fmt_spelled_num(),
fmt_tf(),
fmt_time(),
fmt_units(),
fmt_url(),
sub_missing(),
sub_small_vals(),
sub_values(),
sub_zero()