The cols_merge_range() function is a specialized variant of the
cols_merge() function. It operates by taking a two columns that constitute
a range of values (col_begin and col_end) and merges them into a single
column. What results is a column containing both values separated by a long
dash (e.g., 12.0 — 20.0). The column specified in col_end is dropped from
the output table.
cols_merge_range(data, col_begin, col_end, sep = "--", autohide = TRUE)
| data | A table object that is created using the |
|---|---|
| col_begin | A column that contains values for the start of the range. |
| col_end | A column that contains values for the end of the range. |
| sep | The separator text that indicates the values are ranged. The
default value of |
| autohide | An option to automatically hide the column specified as
|
An object of class gt_tbl.
This function could be somewhat replicated using cols_merge(), however,
cols_merge_range() employs the following specialized operations for NA
handling:
NAs in col_begin (but not col_end) result in a display of only
NAs in col_end (but not col_begin) result in a display of only
the col_begin values only for the merged column (this is the converse of
the previous)
NAs both in col_begin and col_end result in missing values for
the merged column
Any resulting NA values in the col_begin column following the merge
operation can be easily formatted using the fmt_missing() function.
Separate calls of fmt_missing() can be used for the col_begin and
col_end columns for finer control of the replacement values.
This function is part of a set of four column-merging functions. The other
two are the general cols_merge() function and the specialized
cols_merge_uncert() and cols_merge_n_pct() functions. These functions
operate similarly, where the non-target columns can be optionally hidden from
the output table through the hide_columns or autohide options.

4-10
Other Modify Columns:
cols_align(),
cols_hide(),
cols_label(),
cols_merge_n_pct(),
cols_merge_uncert(),
cols_merge(),
cols_move_to_end(),
cols_move_to_start(),
cols_move(),
cols_unhide(),
cols_width()
# Use `gtcars` to create a gt table, # keeping only the `model`, `mpg_c`, # and `mpg_h` columns; merge the mpg # columns together as a single range # column (which is labeled as MPG, # in italics) tab_1 <- gtcars %>% dplyr::select(model, starts_with("mpg")) %>% dplyr::slice(1:8) %>% gt() %>% cols_merge_range( col_begin = mpg_c, col_end = mpg_h ) %>% cols_label( mpg_c = md("*MPG*") )