Wherever there is numerical data that are very large in value, replacement
text may be better for explanatory purposes. The sub_large_vals()
function
allows for this replacement through specification of a threshold
, a
large_pattern
, and the sign of the values to be considered.
sub_large_vals(
data,
columns = everything(),
rows = everything(),
threshold = 1e+12,
large_pattern = ">={x}",
sign = "+"
)
An object of class gt_tbl
.
A table object that is created using the gt()
function.
The columns to format. Can either be a series of column names
provided in c()
, a vector of column indices, or a helper function
focused on selections. The select helper functions are: starts_with()
,
ends_with()
, contains()
, matches()
, one_of()
, num_range()
, and
everything()
.
Optional rows to format. Providing everything()
(the
default) results in all rows in columns
being formatted. Alternatively,
we can supply a vector of row captions within c()
, a vector of row
indices, or a helper function focused on selections. The select helper
functions are: starts_with()
, ends_with()
, contains()
, matches()
,
one_of()
, 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
).
The threshold value with which values should be considered large enough for replacement.
The pattern text to be used in place of the suitably large values in the rendered table.
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.
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 × 1
## num
## <dbl>
## 1 0
## 2 NA
## 3 1e 8
## 4 1e 9
## 5 1e10
## 6 1e11
## 7 1e12
## 8 1e13
## 9 1e14
The tbl
contains a variety of smaller numbers and some might be small
enough to reformat with a threshold value. With sub_small_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"
)
3-19
Targeting of values is done through columns
and additionally by rows
(if
nothing is provided for rows
then entire columns are selected). Conditional
formatting is possible by providing a conditional expression to the rows
argument. See the Arguments section for more information on this.
Other Format Data:
data_color()
,
fmt_bytes()
,
fmt_currency()
,
fmt_datetime()
,
fmt_date()
,
fmt_engineering()
,
fmt_fraction()
,
fmt_integer()
,
fmt_markdown()
,
fmt_number()
,
fmt_partsper()
,
fmt_passthrough()
,
fmt_percent()
,
fmt_scientific()
,
fmt_time()
,
fmt()
,
sub_missing()
,
sub_small_vals()
,
sub_zero()
,
text_transform()