Skip to contents

Functions to work with rows in tables

Usage

find_tableRow(table, row, withExtras = FALSE, withData = TRUE)

tableRow(table, row, withExtras = FALSE, withData = TRUE)

tableRow(table, row, asis = FALSE, withExtras = FALSE, withData = TRUE) <- value

Arguments

table

A tabular-like environment to work with.

row

row in the table (1 is top row), including rows of labels.

withExtras

If TRUE, include the extras before the line of data, such as \hline, etc.

withData

If TRUE, include the data.

asis

Should a linebreak and newline be added after the value?

value

The content to be inserted into the cell. This can be a LaTeX2 object, or a character string that will be converted to one.

Value

find_tableRow() returns the indices of the entries corresponding to the content of row i of the table.

tableRow() returns a LaTeX2 object containing all of the table content in the row.

Details

Unless asis = TRUE, tableContent(table) <- value will add "\" and a newline at the end if not present.

If the row value is higher than the number of rows in the table, blank rows will be added to fill the space between.

If withExtras = TRUE and you want the result to start on a new line, you need to add the newline explicitly in value when using the assignment function.

Examples

latex <- kableExtra::kbl(mtcars[1:2, 1:2], format = "latex")
parsed <- parseLatex(latex)
table <- parsed[[find_tabular(parsed)]]
find_tableRow(table, 1)
#> [1]  8  9 10 11 12 13 14 15 16

tableRow(table, 1)
#>   & mpg & cyl\\
tableRow(table, 1, withExtras = TRUE)
#> 
#> \hline
#>   & mpg & cyl\\

tableRow(table, 5) <- "a & b & c"
table
#> ENVIRONMENT: \begin{tabular}[t]{l|r|r}
#> \hline
#>   & mpg & cyl\\
#> \hline
#> Mazda RX4 & 21 & 6\\
#> \hline
#> Mazda RX4 Wag & 21 & 6\\
#>  &  & \\
#> a & b & c\\
#> \hline
#> \end{tabular}