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()
)
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).
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.
The alignment of the table in its container. By default, this is
"center"
. Other options are "left"
and "right"
.
The environment in which to evaluate the expr
.
Is expr
a quoted expression (with quote()
)? This is useful
if you want to save an expression in a variable.
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.
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.
library(shiny)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)
)
}
12-1
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.
Other Shiny functions:
gt_output()