This help page describes how to use the row
and col
arguments in set_*
functions.
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)
, omitting row
and col
, to set the property to x
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 and odds
for only odd ones.
Use stripe(n, from = m)
to get every nth row/column starting at row/column m.
Use dplyr
functions like starts_with
, contains
and matches
to
specify columns (but not rows). See tidyselect::language
for a full list.
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
or col
is numeric, character or logical, it is evaluated just as in standard
subsetting. col
will be evaluated in a special context provided by
tidyselect::with_vars()
to allow the use of dplyr functions.
If row
or col
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()
and final()
return functions for this purpose.
set_bold(jams, 2:4, 1:2, TRUE)
#> Type Price
#> Strawberry 1.90
#> Raspberry 2.10
#> Plum 1.80
#>
#> Column names: Type, Price
set_background_color(jams, evens, everywhere,
"grey95")
#> Type Price
#> Strawberry 1.90
#> Raspberry 2.10
#> Plum 1.80
#>
#> Column names: Type, Price
set_bold(jams, everywhere,
tidyselect::matches("yp"), TRUE)
#> Type Price
#> Strawberry 1.90
#> Raspberry 2.10
#> Plum 1.80
#>
#> Column names: Type, Price
set_text_color(jams, 2:4, 1:2,
c("red", "violetred", "purple"))
#> Type Price
#> Strawberry 1.90
#> Raspberry 2.10
#> Plum 1.80
#>
#> Column names: Type, Price