We can modify the display order of any row groups in a gt object with the row_group_order() function. The groups argument can either take a vector of row group names or a numeric vector of row group indices; whichever is provided, the row groups will adhere to this revised ordering. It isn't necessary to provide all row group names in groups, rather, what is provided will assume the specified ordering at the top of the table and the remaining row groups will follow in their original ordering.

row_group_order(data, groups)



A table object that is created using the gt() function.


A vector of row group names, or, a numeric vector of indices corresponding to the new ordering. Either vector must correspond to assigned group names or the index positions. Also, either type of vector is not required to have all of the row group names or available index positions within it; any omitted values will be added to the end while preserving the original ordering.


An object of class gt_tbl.


Function ID



# Use `exibble` to create a gt table # with a stub and with row groups; # modify the order of the row groups # with `row_group_order()`, specifying # the new ordering in `groups` tab_1 <- exibble %>% dplyr::select(char, currency, row, group) %>% gt( rowname_col = "row", groupname_col = "group" ) %>% row_group_order( groups = c("grp_b", "grp_a") )