Skip to contents

Should you have a gt_group object, created through use of the gt_group() function, you might want to add more gt tables to that container. While it's common to generate a gt_group object with a collection of gt_tbl objects, one can also create an 'empty' gt_group object. Whatever your workflow might be, the grp_add() function makes it possible to flexibly add one or more new gt tables, returning a refreshed gt_group object.


grp_add(.data, ..., .list = list2(...), .before = NULL, .after = NULL)



The gt table group object

obj:<gt_group> // required

This is a gt_group container object. It is typically generated through use of gt_group() along with one or more gt_tbl objects, or, made by splitting a gt table with gt_split().


One or more gt table objects

obj:<gt_tbl> // required (or, use .list)

One or more gt table (gt_tbl) objects, typically generated via the gt() function.


Alternative to ...

<list of multiple expressions> // (or, use ...)

Allows for the use of a list as an input alternative to ....

.before, .after

Table used as anchor

scalar<numeric|integer> // default: NULL (optional)

A single index for either .before or .after, specifying where the supplied gt_tbl objects should be placed amongst the existing collection of gt tables. If nothing is provided for either argument the incoming gt_tbl objects will be appended.


An object of class gt_group.

Function ID


Function Introduced

v0.9.0 (Mar 31, 2023)

See also

Other table group functions: grp_clone(), grp_options(), grp_pull(), grp_replace(), grp_rm(), gt_group(), gt_split()