This function coverts a character matrix to an html table.

matrix2html(x, caption = NULL, styles = NULL, indexes = NULL,
  class = NULL)

Arguments

x

a character matrix. Is most of the cases it is the object returned by table_format.

caption

a string to be the caption of the table. Default is NULL, no caption.

styles

a vector with style definition for th, tr and td tags. See the examples section. Default is NULL. These styles must be defined in a css file used to render the html page. If you are using knitr, you can use a custom css file when knitting knit2html("my\_doc.Rmd", stylesheet = "my\_custom\_css.css").

indexes

a positive integer matrix with dimensions equal to x. The numbers in each cell of indexes call the corresponding styles to be used in x. See examples for clarification. Default is NULL.

class

a string corresponding a table style defined in a css file. Default is NULL.

Value

a character vector. Use cat inside chunks with header results = "asis" to print the result as interpretable code of an html table.

See also

Examples

x <- head(rock) x <- sapply(x, as.character) str(x)
#> chr [1:6, 1:4] "4990" "7002" "7558" "7352" "7943" "7979" "2791.9" "3892.6" ... #> - attr(*, "dimnames")=List of 2 #> ..$ : NULL #> ..$ : chr [1:4] "area" "peri" "shape" "perm"
m2h <- matrix2html(x) cat(m2h)
#> <table> #> <tr> #> <th>4990</th> #> <th>2791.9</th> #> <th>0.0903296</th> #> <th>6.3</th> #> </tr> #> <tr> #> <td>7002</td> #> <td>3892.6</td> #> <td>0.148622</td> #> <td>6.3</td> #> </tr> #> <tr> #> <td>7558</td> #> <td>3930.66</td> #> <td>0.183312</td> #> <td>6.3</td> #> </tr> #> <tr> #> <td>7352</td> #> <td>3869.32</td> #> <td>0.117063</td> #> <td>6.3</td> #> </tr> #> <tr> #> <td>7943</td> #> <td>3948.54</td> #> <td>0.122417</td> #> <td>17.1</td> #> </tr> #> <tr> #> <td>7979</td> #> <td>4010.15</td> #> <td>0.167045</td> #> <td>17.1</td> #> </tr> #> </table>
x <- mtcars[1:10, 1:3] x <- rbind(c("", colnames(x)), cbind(rownames(x), x))
#> Warning: invalid factor level, NA generated
x <- as.matrix(x) rownames(x) <- colnames(x) <- NULL x[1,1] <- "Cars" x
#> [,1] [,2] [,3] [,4] #> [1,] "Cars" "mpg" "cyl" "disp" #> [2,] "Mazda RX4" "21" "6" "160" #> [3,] "Mazda RX4 Wag" "21" "6" "160" #> [4,] "Datsun 710" "22.8" "4" "108" #> [5,] "Hornet 4 Drive" "21.4" "6" "258" #> [6,] "Hornet Sportabout" "18.7" "8" "360" #> [7,] "Valiant" "18.1" "6" "225" #> [8,] "Duster 360" "14.3" "8" "360" #> [9,] "Merc 240D" "24.4" "4" "146.7" #> [10,] "Merc 230" "22.8" "4" "140.8" #> [11,] "Merc 280" "19.2" "6" "167.6"
m2h <- matrix2html(x, caption="Part of the cars data set.") cat(m2h)
#> <table> #> <figcaption class="tab"> Part of the cars data set. #> </figcaption> #> <tr> #> <th>Cars</th> #> <th>mpg</th> #> <th>cyl</th> #> <th>disp</th> #> </tr> #> <tr> #> <td>Mazda RX4</td> #> <td>21</td> #> <td>6</td> #> <td>160</td> #> </tr> #> <tr> #> <td>Mazda RX4 Wag</td> #> <td>21</td> #> <td>6</td> #> <td>160</td> #> </tr> #> <tr> #> <td>Datsun 710</td> #> <td>22.8</td> #> <td>4</td> #> <td>108</td> #> </tr> #> <tr> #> <td>Hornet 4 Drive</td> #> <td>21.4</td> #> <td>6</td> #> <td>258</td> #> </tr> #> <tr> #> <td>Hornet Sportabout</td> #> <td>18.7</td> #> <td>8</td> #> <td>360</td> #> </tr> #> <tr> #> <td>Valiant</td> #> <td>18.1</td> #> <td>6</td> #> <td>225</td> #> </tr> #> <tr> #> <td>Duster 360</td> #> <td>14.3</td> #> <td>8</td> #> <td>360</td> #> </tr> #> <tr> #> <td>Merc 240D</td> #> <td>24.4</td> #> <td>4</td> #> <td>146.7</td> #> </tr> #> <tr> #> <td>Merc 230</td> #> <td>22.8</td> #> <td>4</td> #> <td>140.8</td> #> </tr> #> <tr> #> <td>Merc 280</td> #> <td>19.2</td> #> <td>6</td> #> <td>167.6</td> #> </tr> #> </table>
# These table class are assumed to be defined in a css file as # follow. # td.red { color: #CC0000; } # td.blue { color: #0000CC; } # td.shade { background-color: #CCCCCC; } # td.line { border-bottom: 1px solid #000000; } # td.bold { font-weight: bold; } # td.italic { font-style: italic; } sty <- c("<th align=\"center\">%s</th>", "<tr>\n%s\n</tr>\n", "<td align=\"center\">%s</td>", "<td align=\"center\" class=\"red\">%s</td>", "<td align=\"center\" class=\"blue line\">%s</td>", "<td align=\"center\" class=\"shade\">%s</td>", "<td align=\"center\" class=\"line\">%s</td>", "<td align=\"center\" class=\"bold shade\">%s</td>", "<td align=\"center\" class=\"italic blue\">%s</td>") # Which style for which cell table. idx <- 0L * row(x) + 3L idx[3, ] <- 4L idx[4, ] <- 5L idx[5, ] <- 6L idx[7, ] <- 7L idx[8, ] <- 8L idx[9, ] <- 9L idx[, 3] <- 3L idx[1, ] <- 1L m2h <- matrix2html(x = x, styles = sty, indexes = idx, caption = "Part of the cars data set.") cat(m2h)
#> <table> #> <figcaption class="tab"> Part of the cars data set. #> </figcaption> #> <tr> #> <th align="center">Cars</th> #> <th align="center">mpg</th> #> <th align="center">cyl</th> #> <th align="center">disp</th> #> </tr> #> <tr> #> <td align="center">Mazda RX4</td> #> <td align="center">21</td> #> <td align="center">6</td> #> <td align="center">160</td> #> </tr> #> <tr> #> <td align="center" class="red">Mazda RX4 Wag</td> #> <td align="center" class="red">21</td> #> <td align="center">6</td> #> <td align="center" class="red">160</td> #> </tr> #> <tr> #> <td align="center" class="blue line">Datsun 710</td> #> <td align="center" class="blue line">22.8</td> #> <td align="center">4</td> #> <td align="center" class="blue line">108</td> #> </tr> #> <tr> #> <td align="center" class="shade">Hornet 4 Drive</td> #> <td align="center" class="shade">21.4</td> #> <td align="center">6</td> #> <td align="center" class="shade">258</td> #> </tr> #> <tr> #> <td align="center">Hornet Sportabout</td> #> <td align="center">18.7</td> #> <td align="center">8</td> #> <td align="center">360</td> #> </tr> #> <tr> #> <td align="center" class="line">Valiant</td> #> <td align="center" class="line">18.1</td> #> <td align="center">6</td> #> <td align="center" class="line">225</td> #> </tr> #> <tr> #> <td align="center" class="bold shade">Duster 360</td> #> <td align="center" class="bold shade">14.3</td> #> <td align="center">8</td> #> <td align="center" class="bold shade">360</td> #> </tr> #> <tr> #> <td align="center" class="italic blue">Merc 240D</td> #> <td align="center" class="italic blue">24.4</td> #> <td align="center">4</td> #> <td align="center" class="italic blue">146.7</td> #> </tr> #> <tr> #> <td align="center">Merc 230</td> #> <td align="center">22.8</td> #> <td align="center">4</td> #> <td align="center">140.8</td> #> </tr> #> <tr> #> <td align="center">Merc 280</td> #> <td align="center">19.2</td> #> <td align="center">6</td> #> <td align="center">167.6</td> #> </tr> #> </table>