Use colDef() to customize the columns in a table.

colDef(
  name = NULL,
  aggregate = NULL,
  sortable = NULL,
  resizable = NULL,
  filterable = NULL,
  searchable = NULL,
  filterMethod = NULL,
  show = TRUE,
  defaultSortOrder = NULL,
  sortNALast = FALSE,
  format = NULL,
  cell = NULL,
  grouped = NULL,
  aggregated = NULL,
  header = NULL,
  footer = NULL,
  details = NULL,
  filterInput = NULL,
  html = FALSE,
  na = "",
  rowHeader = FALSE,
  minWidth = 100,
  maxWidth = NULL,
  width = NULL,
  align = NULL,
  vAlign = NULL,
  headerVAlign = NULL,
  sticky = NULL,
  class = NULL,
  style = NULL,
  headerClass = NULL,
  headerStyle = NULL,
  footerClass = NULL,
  footerStyle = NULL
)

Arguments

name

Column header name.

aggregate

Aggregate function to use when rows are grouped. The name of a built-in aggregate function or a custom JS() aggregate function. Built-in aggregate functions are: "mean", "sum", "max", "min", "median", "count", "unique", and "frequency".

To enable row grouping, use the groupBy argument in reactable().

sortable

Enable sorting? Overrides the table option.

resizable

Enable column resizing? Overrides the table option.

filterable

Enable column filtering? Overrides the table option.

searchable

Enable or disable global table searching for this column. By default, global searching applies to all visible columns. Set this to FALSE to exclude a visible column from searching, or TRUE to include a hidden column in searching.

filterMethod

Custom filter method to use for column filtering. A JS() function that takes an array of row objects, the column ID, and the filter value as arguments, and returns the filtered array of row objects.

show

Show the column?

If FALSE, this column will be excluded from global table searching by default. To include this hidden column in searching, set searchable to TRUE in colDef().

defaultSortOrder

Default sort order. Either "asc" for ascending order or "desc" for descending order. Overrides the table option.

sortNALast

Always sort missing values (NA or NaN) last?

format

Column formatting options. A colFormat() object to format all cells, or a named list of colFormat() objects to format standard cells ("cell") and aggregated cells ("aggregated") separately.

cell

Custom cell renderer. An R function that takes the cell value, row index, and column name as arguments, or a JS() function that takes a cell info object and table state object as arguments.

grouped

Custom grouped cell renderer. A JS() function that takes a cell info object and table state object as arguments.

aggregated

Custom aggregated cell renderer. A JS() function that takes a cell info object and table state object as arguments.

header

Custom header renderer. An R function that takes the header value and column name as arguments, or a JS() function that takes a column object and table state object as arguments.

footer

Footer content or render function. Render functions can be an R function that takes the column values and column name as arguments, or a JS() function that takes a column object and table state object as arguments.

details

Additional content to display when expanding a row. An R function that takes the row index and column name as arguments, or a JS() function that takes a row info object and table state object as arguments. Cannot be used on a groupBy column.

filterInput

Custom filter input or render function. Render functions can be an R function that takes the column values and column name as arguments, or a JS() function that takes a column object and table state object as arguments.

html

Render content as HTML? Raw HTML strings are escaped by default.

na

String to display for missing values (i.e. NA or NaN). By default, missing values are displayed as blank cells.

rowHeader

Mark up cells in this column as row headers?

Set this to TRUE to help users navigate the table using assistive technologies. When cells are marked up as row headers, assistive technologies will read them aloud while navigating through cells in the table.

Cells in the row names column are automatically marked up as row headers.

minWidth

Minimum width of the column in pixels. Defaults to 100.

maxWidth

Maximum width of the column in pixels.

width

Fixed width of the column in pixels. Overrides minWidth and maxWidth.

align

Horizontal alignment of content in the column. One of "left", "right", "center". By default, all numbers are right-aligned, while all other content is left-aligned.

vAlign

Vertical alignment of content in data cells. One of "top" (the default), "center", "bottom".

headerVAlign

Vertical alignment of content in header cells. One of "top" (the default), "center", "bottom".

sticky

Make the column sticky when scrolling horizontally? Either "left" or "right" to make the column stick to the left or right side.

If a sticky column is in a column group, all columns in the group will automatically be made sticky, including the column group header.

class

Additional CSS classes to apply to cells. Can also be an R function that takes the cell value, row index, and column name as arguments, or a JS() function that takes a row info object, column object, and table state object as arguments.

Note that R functions cannot apply classes to aggregated cells.

style

Inline styles to apply to cells. A named list or character string. Can also be an R function that takes the cell value and row index as arguments, or a JS() function that takes a row info object, column object, and table state object as arguments.

Note that R functions cannot apply styles to aggregated cells. If style is a named list, property names should be camelCased.

headerClass

Additional CSS classes to apply to the header.

headerStyle

Inline styles to apply to the header. A named list or character string.

Note that if headerStyle is a named list, property names should be camelCased.

footerClass

Additional CSS classes to apply to the footer.

footerStyle

Inline styles to apply to the footer. A named list or character string.

Note that if footerStyle is a named list, property names should be camelCased.

Value

A column definition object that can be used to customize columns in reactable().

Examples

reactable(
  iris,
  columns = list(
    Sepal.Length = colDef(name = "Sepal Length"),
    Sepal.Width = colDef(filterable = TRUE),
    Petal.Length = colDef(show = FALSE),
    Petal.Width = colDef(defaultSortOrder = "desc")
  )
)
#> Error in x$width %||% settings$fig.width * settings$dpi: non-numeric argument to binary operator