fmt_auto {gt} | R Documentation |
Automatically format column data according to their values
Description
fmt_auto()
will automatically apply formatting of various types in a way
that best suits the data table provided. The function will attempt to format
numbers such that they are condensed to an optimal width, either with
scientific notation or large-number suffixing. Currency values are detected
by currency codes embedded in the column name and formatted in the correct
way. Although the functionality here is comprehensive it's still possible to
reduce the scope of automatic formatting with the scope
argument and also
by choosing a subset of columns and rows to which the formatting will be applied.
Usage
fmt_auto(
data,
columns = everything(),
rows = everything(),
scope = c("numbers", "currency"),
lg_num_pref = c("sci", "suf"),
locale = NULL
)
Arguments
data |
The gt table data object
This is the gt table object that is commonly created through use of the
|
columns |
Columns to target
Can either be a series of column names provided in |
rows |
Rows to target
In conjunction with |
scope |
Scope of automatic formatting
By default, the function will format both |
lg_num_pref |
Large-number preference
When large numbers are present, there can be a fixed preference toward how
they are formatted. Choices are scientific notation for very small and very
large values ( |
locale |
Locale identifier
An optional locale identifier that can be used for formatting values
according the locale's rules. Examples include |
Value
An object of class gt_tbl
.
Examples
Use the exibble
dataset to create a gt table. Format all of the
columns automatically with the fmt_auto()
function.
exibble |> gt() |> fmt_auto()

Let's now use the countrypops
dataset to create another gt table.
We'll again use fmt_auto()
to automatically format all columns but this
time the choice will be made to opt for large-number suffixing instead of
scientific notation. This is done by using the lg_num_pref = "suf"
option.
countrypops |> dplyr::select(country_code_3, year, population) |> dplyr::filter(country_code_3 %in% c("CHN", "IND", "USA", "PAK", "IDN")) |> dplyr::filter(year > 1975 & year %% 5 == 0) |> tidyr::spread(year, population) |> dplyr::arrange(desc(`2020`)) |> gt(rowname_col = "country_code_3") |> fmt_auto(lg_num_pref = "suf")

Function ID
3-29
Function Introduced
v0.9.0
(Mar 31, 2023)
See Also
Other data formatting functions:
data_color()
,
fmt()
,
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_partsper()
,
fmt_passthrough()
,
fmt_percent()
,
fmt_roman()
,
fmt_scientific()
,
fmt_spelled_num()
,
fmt_tf()
,
fmt_time()
,
fmt_units()
,
fmt_url()
,
sub_large_vals()
,
sub_missing()
,
sub_small_vals()
,
sub_values()
,
sub_zero()