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:
NA
s in col_begin
(but not col_end
) result in a display of only
NA
s 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)
NA
s 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 three column-merging functions. The other
two are the general cols_merge()
function and the specialized
cols_merge_uncert()
function. 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-9
Other Modify Columns:
cols_align()
,
cols_hide()
,
cols_label()
,
cols_merge_uncert()
,
cols_merge()
,
cols_move_to_end()
,
cols_move_to_start()
,
cols_move()
,
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 = vars(mpg_c), col_end = vars(mpg_h) ) %>% cols_label( mpg_c = md("*MPG*") )