Many functions exist in R to generate HTML tables. These functions are
useful for generating HTML table fragments (rather than whole tables), which
can then be used to build up complete tables. The first column my be used to
label the rows of the table. Row labels, if specified, can have a special
HTML class designated, which can be useful as a hook to customize
their appearance using CSS. The same is true for the the first and last row
of cells.
table.rows(
x,
row.labels = rownames(x),
th = FALSE,
class = NULL,
rowlabelclass = "rowlabel",
firstrowclass = "firstrow",
lastrowclass = "lastrow",
...
)
table.data(
x,
row.labels = rownames(x),
th = FALSE,
class = NULL,
rowlabelclass = "rowlabel",
firstrowclass = "firstrow",
lastrowclass = "lastrow",
...
)A vector or table-like structure (e.g. a data.frame or matrix).
Values for the first column, typically used to label the row, or NULL to omit.
A logical. Should th tags be used rather than td?
HTML class attribute. Can be a single character, a vector or a matrix.
HTML class attribute for the row labels (i.e. first column).
HTML class attribute for the first row of cells.
HTML class attribute for the last row of cells.
Additional arguments.
A character which contains an HTML table fragment.
table.data(): Convert to HTML table data (cells).
x <- matrix(signif_pad(exp(rnorm(5*5, 1, 1))), 5, 5)
table.data(x)
#> [1] "<td class='firstrow'>2.94</td>\n<td class='firstrow'>2.83</td>\n<td class='firstrow'>5.70</td>\n<td class='firstrow'>0.564</td>\n<td class='firstrow'>5.41</td>"
#> [2] "<td>1.04</td>\n<td>1.78</td>\n<td>18.3</td>\n<td>0.598</td>\n<td>22.2</td>"
#> [3] "<td>2.53</td>\n<td>0.349</td>\n<td>0.642</td>\n<td>0.548</td>\n<td>0.750</td>"
#> [4] "<td>11.5</td>\n<td>8.43</td>\n<td>5.48</td>\n<td>1.60</td>\n<td>5.98</td>"
#> [5] "<td class='lastrow'>4.27</td>\n<td class='lastrow'>0.631</td>\n<td class='lastrow'>2.09</td>\n<td class='lastrow'>0.630</td>\n<td class='lastrow'>5.87</td>"
cat(table.rows(x, NULL))
#> <tr>
#> <td class='rowlabel firstrow'></td>
#> <td class='firstrow'>2.94</td>
#> <td class='firstrow'>2.83</td>
#> <td class='firstrow'>5.70</td>
#> <td class='firstrow'>0.564</td>
#> <td class='firstrow'>5.41</td>
#> </tr>
#> <tr>
#> <td class='rowlabel'></td>
#> <td>1.04</td>
#> <td>1.78</td>
#> <td>18.3</td>
#> <td>0.598</td>
#> <td>22.2</td>
#> </tr>
#> <tr>
#> <td class='rowlabel'></td>
#> <td>2.53</td>
#> <td>0.349</td>
#> <td>0.642</td>
#> <td>0.548</td>
#> <td>0.750</td>
#> </tr>
#> <tr>
#> <td class='rowlabel'></td>
#> <td>11.5</td>
#> <td>8.43</td>
#> <td>5.48</td>
#> <td>1.60</td>
#> <td>5.98</td>
#> </tr>
#> <tr>
#> <td class='rowlabel lastrow'></td>
#> <td class='lastrow'>4.27</td>
#> <td class='lastrow'>0.631</td>
#> <td class='lastrow'>2.09</td>
#> <td class='lastrow'>0.630</td>
#> <td class='lastrow'>5.87</td>
#> </tr>
cat(table.rows(x, LETTERS[1:nrow(x)]))
#> <tr>
#> <td class='rowlabel firstrow'>A</td>
#> <td class='firstrow'>2.94</td>
#> <td class='firstrow'>2.83</td>
#> <td class='firstrow'>5.70</td>
#> <td class='firstrow'>0.564</td>
#> <td class='firstrow'>5.41</td>
#> </tr>
#> <tr>
#> <td class='rowlabel'>B</td>
#> <td>1.04</td>
#> <td>1.78</td>
#> <td>18.3</td>
#> <td>0.598</td>
#> <td>22.2</td>
#> </tr>
#> <tr>
#> <td class='rowlabel'>C</td>
#> <td>2.53</td>
#> <td>0.349</td>
#> <td>0.642</td>
#> <td>0.548</td>
#> <td>0.750</td>
#> </tr>
#> <tr>
#> <td class='rowlabel'>D</td>
#> <td>11.5</td>
#> <td>8.43</td>
#> <td>5.48</td>
#> <td>1.60</td>
#> <td>5.98</td>
#> </tr>
#> <tr>
#> <td class='rowlabel lastrow'>E</td>
#> <td class='lastrow'>4.27</td>
#> <td class='lastrow'>0.631</td>
#> <td class='lastrow'>2.09</td>
#> <td class='lastrow'>0.630</td>
#> <td class='lastrow'>5.87</td>
#> </tr>
cat(table.rows(LETTERS[1:3], "Headings", th=TRUE))
#> <tr>
#> <th class='rowlabel firstrow lastrow'>Headings</th>
#> <th class='firstrow lastrow'>A</th>
#> <th class='firstrow lastrow'>B</th>
#> <th class='firstrow lastrow'>C</th>
#> </tr>