Table Output — tableOutput

v1.8.1|Source: R/bootstrap.R, R/render-table.R


The tableOuptut()/renderTable() pair creates a reactive table that is suitable for display small matrices and data frames. The columns are formatted with xtable::xtable().

See renderDataTable() for data frames that are too big to fit on a single page.


  striped = FALSE,
  hover = FALSE,
  bordered = FALSE,
  spacing = c("s", "xs", "m", "l"),
  width = "auto",
  align = NULL,
  rownames = FALSE,
  colnames = TRUE,
  digits = NULL,
  na = "NA",
  env = parent.frame(),
  quoted = FALSE,
  outputArgs = list()



output variable to read the table from


An expression that returns an R object that can be used with xtable::xtable().

striped, hover, bordered

Logicals: if TRUE, apply the corresponding Bootstrap table format to the output table.


The spacing between the rows of the table (xs stands for "extra small", s for "small", m for "medium" and l for "large").


Table width. Must be a valid CSS unit (like "100%", "400px", "auto") or a number, which will be coerced to a string and have "px" appended.


A string that specifies the column alignment. If equal to 'l', 'c' or 'r', then all columns will be, respectively, left-, center- or right-aligned. Otherwise, align must have the same number of characters as the resulting table (if rownames = TRUE, this will be equal to ncol()+1), with the i-th character specifying the alignment for the i-th column (besides 'l', 'c' and 'r', '?' is also permitted - '?' is a placeholder for that particular column, indicating that it should keep its default alignment). If NULL, then all numeric/integer columns (including the row names, if they are numbers) will be right-aligned and everything else will be left-aligned (align = '?' produces the same result).

rownames, colnames

Logicals: include rownames? include colnames (column headers)?


An integer specifying the number of decimal places for the numeric columns (this will not apply to columns with an integer class). If digits is set to a negative value, then the numeric columns will be displayed in scientific format with a precision of abs(digits) digits.


The string to use in the table cells whose values are missing (i.e. they either evaluate to NA or NaN).


Arguments to be passed through to xtable::xtable() and xtable::print.xtable().


The parent environment for the reactive expression. By default, this is the calling environment, the same as when defining an ordinary non-reactive expression. If expr is a quosure and quoted is TRUE, then env is ignored.


If it is TRUE, then the quote()ed value of expr will be used when expr is evaluated. If expr is a quosure and you would like to use its expression as a value for expr, then you must set quoted to TRUE.


A list of arguments to be passed through to the implicit call to tableOutput() when renderTable is used in an interactive R Markdown document.


## Only run this example in interactive R sessions
if (interactive()) {
  # table example
    ui = fluidPage(
    server = function(input, output) {
      output$table <- renderTable(iris)