Format numeric cells in a flextable
using R's format() function.
The function is different from colformat_double() on numeric type
columns. The function uses the format() function of R on numeric
type columns. So this is normally what you see on the R console
most of the time (but scientific mode is disabled and NA are replaced).
colformat_num(
x,
i = NULL,
j = NULL,
big.mark = get_flextable_defaults()$big.mark,
decimal.mark = get_flextable_defaults()$decimal.mark,
na_str = get_flextable_defaults()$na_str,
nan_str = get_flextable_defaults()$nan_str,
prefix = "",
suffix = "",
...
)a 'flextable' object, see flextable-package to learn how to create 'flextable' object.
row selector, see section Row selection with the i parameter
in <Selectors in flextable>.
column selector, see section Column selection with the j parameter
in <Selectors in flextable>.
see format()
string to be used for NA and NaN values
string to be used as prefix or suffix
additional argument for function format(), scientific
and digits can not be used.
Function format() is called with the following values:
trim is set to TRUE,
scientific is set to FALSE,
big.mark is set to the value of big.mark argument,
decimal.mark is set to the value of decimal.mark argument,
other arguments are passed 'as is' to the format function.
argument digits is ignored as it is not the same digits that users
want, this one will be used by format() and not formatC().
To change the digit argument use options(digits=4) instead.
This argument will not be changed because colformat_num()
is supposed to format things roughly as what you see on the R console.
If these functions does not fit your needs, use set_formatter()
that lets you use any format function.
Other cells formatters:
colformat_char(),
colformat_date(),
colformat_datetime(),
colformat_double(),
colformat_image(),
colformat_int(),
colformat_lgl(),
set_formatter()
dat <- mtcars
dat[2, 1] <- NA
ft <- flextable(head(dat))
ft <- colformat_num(
x = ft,
big.mark = " ", decimal.mark = ",",
na_str = "N/A"
)
ft <- autofit(ft)
ft
Run the code above in your browser using DataLab