With numeric values in a gt table, we can perform formatting so that the targeted values are rendered in scientific notation. Furthermore, there is fine control with the following options:
decimals: choice of the number of decimal places, option to drop trailing zeros, and a choice of the decimal symbol
scaling: we can choose to scale targeted values by a multiplier value
pattern: option to use a text pattern for decoration of the formatted values
locale-based formatting: providing a locale ID will result in formatting specific to the chosen locale
fmt_scientific(
data,
columns,
rows = everything(),
decimals = 2,
drop_trailing_zeros = FALSE,
scale_by = 1,
pattern = "{x}",
sep_mark = ",",
dec_mark = ".",
locale = NULL
)
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 either everything()
(the
default) or TRUE
results in all rows in columns
being formatted. Can
either be a vector of row captions provided in 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
).
An option to specify the exact number of decimal places to
use. The default number of decimal places is 2
.
A logical value that allows for removal of trailing zeros (those redundant zeros after the decimal mark).
A value to scale the input. The default is 1.0
. All numeric
values will be multiplied by this value first before undergoing formatting.
A formatting pattern that allows for decoration of the
formatted value. The value itself is represented by {x}
and all other
characters are taken to be string literals.
The mark to use as a separator between groups of digits
(e.g., using sep_mark = ","
with 1000
would result in a formatted value
of 1,000
).
The character to use as a decimal mark (e.g., using dec_mark = ","
with 0.152
would result in a formatted value of 0,152
).
An optional locale ID that can be used for formatting the value
according the locale's rules. Examples include "en_US"
for English
(United States) and "fr_FR"
for French (France). The use of a valid
locale ID will override any values provided in sep_mark
and dec_mark
.
We can use the info_locales()
function as a useful reference for all of
the locales that are supported.
An object of class gt_tbl
.
3-2
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_markdown()
,
fmt_missing()
,
fmt_number()
,
fmt_passthrough()
,
fmt_percent()
,
fmt_time()
,
fmt()
,
text_transform()
# NOT RUN {
# Use `exibble` to create a gt table;
# format the `num` column as partially
# numeric and partially in scientific
# notation
tab_1 <-
exibble %>%
gt() %>%
fmt_number(
columns = num,
rows = num > 500,
decimals = 1,
scale_by = 1/1000,
pattern = "{x}K"
) %>%
fmt_scientific(
columns = num,
rows = num <= 500,
decimals = 1
)
# }
Run the code above in your browser using DataLab