This function maps over a vector of labels, such as those returned by base::cut
. It works well in formatting ggplot
scales, and can optionally pass parameters to an underlying call to base::formatC
. Any NA
values will be retained.
brk_labels(
x,
format = NULL,
custom = FALSE,
mult_by = 1,
round_digits = NULL,
sep = " to ",
...
)
A character vector.
A function for formatting text, a string giving desired output format, or NULL
(the default) for no formatting. Built-in shorthands are "percent"
, "dollar"
, and "dollark"
, the last of which formats numbers like $12.3k
. Alternatively, provide a character argument to be used by base::formatC
and set custom = TRUE
.
Logical, whether to use custom formatting, triggering a call to formatC
with the arguments supplied to format
and ...
. Defaults FALSE
.
A number by which to multiply values in breaks. Defaults to 1, i.e. just the numbers input. Note that multiplication is carried out before rounding and formatting.
If not NULL
(the default), the number of digits to round to. Note that this takes place after multiplying by mult_by
.
A string by which to separate values in breaks.
Any additional arguments to pass on to the function given in format
, or to base::formatC
if custom
is TRUE
.
A character vector of formatted break labels.
percentage_brks <- c("[0.04,0.15]", "(0.15,0.25]", "(0.25,0.4]")
brk_labels(percentage_brks)
#> [1] "0.04 to 0.15" "0.15 to 0.25" "0.25 to 0.4"
brk_labels(percentage_brks, format = "percent", mult_by = 100)
#> [1] "4 to 15%" "15 to 25%" "25 to 40%"
scientific_brks <- c("[-15500,0]", "(0,20000]", "(20000,25000]")
brk_labels(scientific_brks, format = "e", custom = TRUE, digits = 2)
#> [1] "-1.55e+04 to 0.00e+00" "0.00e+00 to 2.00e+04" "2.00e+04 to 2.50e+04"
brk_labels(scientific_brks, format = stringr::str_pad, side = "left", pad = "0", width = 3)
#> [1] "-15500 to 000" "000 to 20000" "20000 to 25000"