Get a vector of cell data from a gt_tbl object. The output vector will have
cell data formatted in the same way as the table.
extract_cells(
data,
columns,
rows = everything(),
output = c("auto", "plain", "html", "latex", "rtf", "word")
)A vector of cell data extracted from a gt table.
A table object that is created using the gt() function.
The columns containing the cells to extract. Can either be a
series of column names provided in c(), a vector of column indices, or a
helper function focused on selections. The select helper functions are:
starts_with(), ends_with(), contains(), matches(), one_of(),
num_range(), and everything().
Optional rows to limit the extraction of cells. Providing
everything() (the default) results in all rows in columns being
formatted. Alternatively, we can supply a vector of row captions within
c(), a vector of row indices, or a helper function focused on selections.
The select helper functions are: starts_with(), ends_with(),
contains(), matches(), one_of(), num_range(), and everything().
We can also use expressions to filter down to the rows we need (e.g.,
[colname_1] > 100 & [colname_2] < 50).
The output style of the resulting character vector. This can
either be "auto" (the default), "plain", "html", "latex", "rtf",
or "word". In knitr rendering (i.e., Quarto or R Markdown), the
"auto" option will choose the correct output value
Let's create a gt table with the exibble dataset to use in the next
few examples:
gt_tbl <- gt(exibble, rowname_col = "row", groupname_col = "group")
We can extract a cell from the table with the extract_cells() function.
This is done by providing a column and a row intersection:
extract_cells(gt_tbl, columns = num, row = 1)
#> [1] "1.111e-01"
Multiple cells can be extracted. Let's get the first four cells from the
char column.
extract_cells(gt_tbl, columns = char, rows = 1:4)
#> [1] "apricot" "banana" "coconut" "durian"
We can format cells and expect that the formatting is fully retained after extraction.
gt_tbl %>%
fmt_number(columns = num, decimals = 2) %>%
extract_cells(columns = num, rows = 1)
#> [1] "0.11"
13-7
Other table export functions:
as_latex(),
as_raw_html(),
as_rtf(),
as_word(),
extract_summary(),
gtsave()