
Last chance! 50% off unlimited learning
Sale ends in
Format numeric columns in a table as currency (formatCurrency()
) or
percentages (formatPercentage()
), or round numbers to a specified
number of decimal places (formatRound()
), or a specified number
of significant figures (formatSignif()
). The function
formatStyle()
applies CSS styles to table cells by column.
formatCurrency(
table,
columns,
currency = "$",
interval = 3,
mark = ",",
digits = 2,
dec.mark = getOption("OutDec"),
before = TRUE,
zero.print = NULL,
rows = NULL
)formatString(table, columns, prefix = "", suffix = "", rows = NULL)
formatPercentage(
table,
columns,
digits = 0,
interval = 3,
mark = ",",
dec.mark = getOption("OutDec"),
zero.print = NULL,
rows = NULL
)
formatRound(
table,
columns,
digits = 2,
interval = 3,
mark = ",",
dec.mark = getOption("OutDec"),
zero.print = NULL,
rows = NULL
)
formatSignif(
table,
columns,
digits = 2,
interval = 3,
mark = ",",
dec.mark = getOption("OutDec"),
zero.print = NULL,
rows = NULL
)
formatDate(table, columns, method = "toDateString", params = NULL, rows = NULL)
formatStyle(
table,
columns,
valueColumns = columns,
target = c("cell", "row"),
fontWeight = NULL,
color = NULL,
backgroundColor = NULL,
background = NULL,
...
)
a table object created from datatable()
the indices of the columns to be formatted (can be character,
numeric, logical, or a formula of the form ~ V1 + V2
, which is
equivalent to c('V1', 'V2')
)
the currency symbol
put a marker after how many digits of the numbers
the marker after every interval
decimals in the numbers
the number of decimal places to round to
a character to indicate the decimal point
whether to place the currency symbol before or after the values
a string to specify how zeros should be formatted.
Useful for when many zero values exist. If NULL
, keeps zero as it is.
an integer vector (starting from 1) to specify the only rows
that the style applies to.
By default, it's NULL
, meaning all rows should be formatted. Note,
formatStyle()
doesn't support this argument and you should use
styleRow()
instead. In addition, this only works expected in the
client-side processing mode, i.e., server = FALSE
.
string to put in front of the column values
string to put after the column values
the method(s) to convert a date to string in JavaScript; see
DT:::DateMethods
for a list of possible methods, and
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
for a full reference
a list parameters for the specific date conversion method,
e.g., for the toLocaleDateString()
method, your browser may support
params = list('ko-KR', list(year = 'numeric', month = 'long', day =
'numeric'))
indices of the columns from which the cell values are
obtained; this can be different with the columns
argument, e.g. you
may style one column based on the values of a different column
the target to apply the CSS styles to (the current cell or the full row)
the font weight, e.g. 'bold'
and 'normal'
the font color, e.g. 'red'
and '#ee00aa'
the background color of table cells
the background of table cells
other CSS properties, e.g. 'border'
, 'font-size'
,
'text-align'
, and so on; if you want to condition CSS styles on the
cell values, you may use the helper functions such as
styleInterval()
; note the actual CSS property names are
dash-separated, but you can use camelCase names in this function (otherwise
you will have to use backticks to quote the names, e.g. `font-size` =
'12px'
), and this function will automatically convert camelCase names to
dash-separated names (e.g. 'fontWeight'
will be converted to
'font-weight'
internally)
See https://rstudio.github.io/DT/functions.html for detailed documentation and examples.
library(DT)
m = cbind(matrix(rnorm(120, 1e5, 1e6), 40), runif(40), rnorm(40, 100))
colnames(m) = head(LETTERS, ncol(m))
m
# format the columns A and C as currency, and D as percentages
datatable(m) %>% formatCurrency(c('A', 'C')) %>% formatPercentage('D', 2)
# the first two columns are Euro currency, and round column E to 3 decimal places
datatable(m) %>% formatCurrency(1:2, '\U20AC') %>% formatRound('E', 3)
# render vapor pressure with only two significant figures.
datatable(pressure) %>% formatSignif('pressure',2)
# apply CSS styles to columns
datatable(iris) %>%
formatStyle('Sepal.Length', fontWeight = styleInterval(5, c('bold', 'weight'))) %>%
formatStyle('Sepal.Width',
color = styleInterval(3.4, c('red', 'white')),
backgroundColor = styleInterval(3.4, c('yellow', 'gray'))
)
Run the code above in your browser using DataLab