rowspecs {huxtable} | R Documentation |
Different ways to select rows and columns
Description
This help page describes how to use the row
and col
arguments in set_*
functions.
The basics
The set_*
functions for cell properties all have arguments like this:
set_property(ht, row, col, value)
.
You can treat row
and col
arguments like arguments for
data frame subsetting. For example, you can use row = 1:3
to get the
first three rows, col = "salary"
to specify the column named "salary", or row = ht$salary >= 50000
to specify rows where a condition is true.
There are also a few extra tricks you can use:
Write
set_property(ht, x)
, omittingrow
andcol
, to set the property tox
for all cells.Use
everywhere
to refer to all rows or all columns.Use
final(n)
to refer to the last n rows or columns.Use
evens
to get only even rows/columns andodds
for only odd ones.Use
stripe(n, from = m)
to get every nth row/column starting at row/column m.Use
dplyr
functions likestarts_with
,contains
andmatches
to specify columns (but not rows). See tidyselect::language for a full list.
The gory details
How the row and col arguments are parsed depends on the number of arguments passed to the set_*
function.
If there are two arguments then the second argument is taken as the value and is set for all rows and columns.
If there are four arguments:
If
row
orcol
is numeric, character or logical, it is evaluated just as in standard subsetting.col
will be evaluated in a special context provided bytidyselect::with_vars()
to allow the use of dplyr functions.If
row
orcol
is a function,it is called with two arguments: the huxtable, and the dimension number being evaluated, i.e. 1 for rows, 2 for columns. It must return a vector of column indices.evens()
,odds()
,stripe()
andfinal()
return functions for this purpose.
Examples
set_bold(jams, 2:4, 1:2, TRUE)
set_background_color(jams, evens, everywhere,
"grey95")
set_bold(jams, everywhere,
tidyselect::matches("yp"), TRUE)
set_text_color(jams, 2:4, 1:2,
c("red", "violetred", "purple"))