R: Format table columns

formatCurrency {DT} | R Documentation

## Format table columns

### Description

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.

### Usage

    formatCurrency(table, columns, currency = "$", interval = 3, mark = ",",
        digits = 2, dec.mark = getOption("OutDec"), before = TRUE)

    formatString(table, columns, prefix = "", suffix = "")

    formatPercentage(table, columns, digits = 0, interval = 3, mark = ",",
        dec.mark = getOption("OutDec"))

    formatRound(table, columns, digits = 2, interval = 3, mark = ",",
        dec.mark = getOption("OutDec"))

    formatSignif(table, columns, digits = 2, interval = 3, mark = ",",
        dec.mark = getOption("OutDec"))

    formatDate(table, columns, method = "toDateString", params = NULL)

    formatStyle(table, columns, valueColumns = columns, target = c("cell",
        "row"), fontWeight = NULL, color = NULL, backgroundColor = NULL,
        background = NULL, ...)

### Arguments

`table` | a table object created from `datatable()`
`columns` | 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')`)
`currency` | the currency symbol
`interval` | put a marker after how many digits of the numbers
`mark` | the marker after every `interval` decimals in the numbers
`digits` | the number of decimal places to round to
`dec.mark` | a character to indicate the decimal point
`before` | whether to place the currency symbol before or after the values
`prefix` | string to put in front of the column values
`suffix` | string to put after the column values
`method` | the method(s) to convert a date to string in JavaScript; see `DT:::DateMethods` for a list of possible methods, and http://mzl.la/1xGe99W for a full reference
`params` | 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'))`
`valueColumns` | 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
`target` | the target to apply the CSS styles to (the current cell or the full row)
`fontWeight` | the font weight, e.g. `'bold'` and `'normal'`
`color` | the font color, e.g. `'red'` and `'#ee00aa'`
`backgroundColor` | the background color of table cells
`background` | 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)

### References

See https://rstudio.github.io/DT/functions.html for detailed documentation and examples.

### 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'))
      )

[Package DT version 0.4 Index]