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()