With render_gt() we can create a reactive gt table that works wonderfully once assigned to an output slot (with gt_output()). This function is to be used within Shiny's server() component. We have some options for controlling the size of the container holding the gt table. The width and height arguments allow for sizing the container, and the align argument allows us to align the table within the container (some other fine-grained options for positioning are available in the tab_options() function).

render_gt(
  expr,
  width = NULL,
  height = NULL,
  align = NULL,
  env = parent.frame(),
  quoted = FALSE,
  outputArgs = list()
)

Arguments

expr

An expression that creates a gt table object. For sake of convenience, a data frame or tibble can be used here (it will be automatically introduced to gt() with its default options).

width, height

The width and height of the table's container. Either can be specified as a single-length character with units of pixels or as a percentage. If provided as a single-length numeric vector, it is assumed that the value is given in units of pixels. The px() and pct() helper functions can also be used to pass in numeric values and obtain values as pixel or percent units.

align

The alignment of the table in its container. By default, this is "center". Other options are "left" and "right".

env

The environment in which to evaluate the expr.

quoted

Is expr a quoted expression (with quote())? This is useful if you want to save an expression in a variable.

outputArgs

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

Details

We need to ensure that we have the shiny package installed first. This is easily by using install.packages("shiny"). More information on creating Shiny apps can be found at the Shiny Site.

Function ID

12-1

See also

Other Shiny functions: gt_output()

Examples

library(shiny) # Here is a Shiny app (contained within # a single file) that (1) prepares a # gt table, (2) sets up the `ui` with # `gt_output()`, and (3) sets up the # `server` with a `render_gt()` that # uses the `gt_tbl` object as the input # expression gt_tbl <- gtcars %>% gt() %>% cols_hide(contains("_")) ui <- fluidPage( gt_output(outputId = "table") ) server <- function(input, output, session) { output$table <- render_gt( expr = gt_tbl, height = px(600), width = px(600) ) } if (interactive()) { shinyApp(ui, server) }