The cells_grand_summary()
function is used to target the cells in a grand
summary and it is useful when applying a footnote with tab_footnote()
or
adding custom styles with tab_style()
. The function is expressly used in
each of those functions' locations
argument. The 'grand_summary' location
is generated by the grand_summary_rows()
function.
Usage
cells_grand_summary(columns = everything(), rows = everything())
Arguments
- columns
Columns to target
<column-targeting expression>
--- default:everything()
The columns to which targeting operations are constrained. Can either be a series of column names provided in
c()
, a vector of column indices, or a select helper function. Examples of select helper functions includestarts_with()
,ends_with()
,contains()
,matches()
,one_of()
,num_range()
, andeverything()
.- rows
Rows to target
<row-targeting expression>
--- default:everything()
In conjunction with
columns
, we can specify which of their rows should form a constraint for targeting operations. The defaulteverything()
results in all rows incolumns
being formatted. Alternatively, we can supply a vector of row captions withinc()
, a vector of row indices, or a select helper function. Examples of select helper functions includestarts_with()
,ends_with()
,contains()
,matches()
,one_of()
,num_range()
, andeverything()
. We can also use expressions to filter down to the rows we need (e.g.,[colname_1] > 100 & [colname_2] < 50
).
Overview of location helper functions
Location helper functions can be used to target cells with virtually any
function that has a locations
argument. Here is a listing of all of the
location helper functions, with locations corresponding roughly from top to
bottom of a table:
cells_title()
: targets the table title or the table subtitle depending on the value given to thegroups
argument ("title"
or"subtitle"
).cells_stubhead()
: targets the stubhead location, a cell of which is only available when there is a stub; a label in that location can be created by using thetab_stubhead()
function.cells_column_spanners()
: targets the spanner column labels with thespanners
argument; spanner column labels appear above the column labels.cells_column_labels()
: targets the column labels with itscolumns
argument.cells_row_groups()
: targets the row group labels in any available row groups using thegroups
argument.cells_stub()
: targets row labels in the table stub using therows
argument.cells_body()
: targets data cells in the table body using intersections ofcolumns
androws
.cells_summary()
: targets summary cells in the table body using thegroups
argument and intersections ofcolumns
androws
.cells_grand_summary()
: targets cells of the table's grand summary using intersections ofcolumns
androws
cells_stub_summary()
: targets summary row labels in the table stub using thegroups
androws
arguments.cells_stub_grand_summary()
: targets grand summary row labels in the table stub using therows
argument.cells_footnotes()
: targets all footnotes in the table footer (cannot be used withtab_footnote()
).cells_source_notes()
: targets all source notes in the table footer (cannot be used withtab_footnote()
).
When using any of the location helper functions with an appropriate function
that has a locations
argument (e.g., tab_style()
), multiple locations
can be targeted by enclosing several cells_*()
helper functions in a
list()
(e.g., list(cells_body(), cells_grand_summary())
).
Targeting cells with columns
and rows
Targeting of grand summary cells is done through the columns
and rows
arguments. The columns
argument allows us to target a subset of grand
summary cells contained in the resolved columns. We say resolved because
aside from declaring column names in c()
(with bare column names or names
in quotes) we can use tidyselect-style expressions. This can be as basic
as supplying a select helper like starts_with()
, or, providing a more
complex incantation like
where(~ is.numeric(.x) && max(.x, na.rm = TRUE) > 1E6)
which targets numeric columns that have a maximum value greater than
1,000,000 (excluding any NA
s from consideration).
Once the columns are targeted, we may also target the rows
of the grand
summary. Grand summary cells in the stub will have ID values that can be used
much like column names in the columns
-targeting scenario. We can use
simpler tidyselect-style expressions (the select helpers should work well
here) and we can use quoted row identifiers in c()
. It's also possible to
use row indices (e.g., c(3, 5, 6)
) that correspond to the row number of a
grand summary row.
Examples
Use a portion of the countrypops
dataset to create a gt table. Add
some styling to a grand summary cells with the tab_style()
function and
cells_grand_summary()
in the locations
argument.
countrypops |>
dplyr::filter(country_name == "Spain", year < 1970) |>
dplyr::select(-contains("country")) |>
gt(rowname_col = "year") |>
fmt_number(
columns = population,
decimals = 0
) |>
grand_summary_rows(
columns = population,
fns = change ~ max(.) - min(.),
fmt = ~ fmt_integer(.)
) |>
tab_style(
style = list(
cell_text(style = "italic"),
cell_fill(color = "lightblue")
),
locations = cells_grand_summary(
columns = population,
rows = 1
)
)
See also
Other helper functions:
adjust_luminance()
,
cell_borders()
,
cell_fill()
,
cell_text()
,
cells_body()
,
cells_column_labels()
,
cells_column_spanners()
,
cells_footnotes()
,
cells_row_groups()
,
cells_source_notes()
,
cells_stub_grand_summary()
,
cells_stub_summary()
,
cells_stubhead()
,
cells_stub()
,
cells_summary()
,
cells_title()
,
currency()
,
default_fonts()
,
escape_latex()
,
google_font()
,
gt_latex_dependencies()
,
html()
,
md()
,
pct()
,
px()
,
random_id()
,
stub()
,
system_fonts()