Function for concatenating htmlTable()s

concatHtmlTables(tables, headers = NULL)

Arguments

tables

A list of htmlTable()s to be concatenated

headers

Either a string or a vector of strings that function as a header for each table. If none is provided it will use the names of the table list or a numeric number.

Value

htmlTable() class object

Examples

library(magrittr)

# Basic example
tables <- list()
output <- matrix(1:4,
                 ncol = 2,
                 dimnames = list(list("Row 1", "Row 2"),
                                 list("Column 1", "Column 2")))
tables[["Simple table"]] <- htmlTable(output)


# An advanced output
output <- matrix(ncol = 6, nrow = 8)

for (nr in 1:nrow(output)) {
  for (nc in 1:ncol(output)) {
    output[nr, nc] <-
      paste0(nr, ":", nc)
  }
}

tables[["Fancy table"]] <- output %>%
  addHtmlTableStyle(align = "r",
                    col.columns = c(rep("none", 2),
                                    rep("#F5FBFF", 4)),
                    col.rgroup = c("none", "#F7F7F7"),
                    css.cell = "padding-left: .5em; padding-right: .2em;") %>%
  htmlTable(header =  paste(c("1st", "2nd",
                              "3rd", "4th",
                              "5th", "6th"),
                            "hdr"),
            rnames = paste(c("1st", "2nd",
                             "3rd",
                             paste0(4:8, "th")),
                           "row"),
            rgroup = paste("Group", LETTERS[1:3]),
            n.rgroup = c(2,4,nrow(output) - 6),
            cgroup = rbind(c("", "Column spanners", NA),
                           c("", "Cgroup 1", "Cgroup 2&dagger;")),
            n.cgroup = rbind(c(1,2,NA),
                             c(2,2,2)),
            caption = "Basic table with both column spanners (groups) and row groups",
            tfoot = "&dagger; A table footer commment",
            cspan.rgroup = 2)

concatHtmlTables(tables)
#> <h1>Simple table</h1> <table class='gmisc_table' style='border-collapse: collapse; margin-top: 1em; margin-bottom: 1em;' >
#> <thead>
#> <tr><th style='border-bottom: 1px solid grey; border-top: 2px solid grey;'></th>
#> <th style='font-weight: 900; border-bottom: 1px solid grey; border-top: 2px solid grey; text-align: center;'>Column 1</th>
#> <th style='font-weight: 900; border-bottom: 1px solid grey; border-top: 2px solid grey; text-align: center;'>Column 2</th>
#> </tr>
#> </thead>
#> <tbody>
#> <tr>
#> <td style='text-align: left;'>Row 1</td>
#> <td style='text-align: center;'>1</td>
#> <td style='text-align: center;'>3</td>
#> </tr>
#> <tr>
#> <td style='border-bottom: 2px solid grey; text-align: left;'>Row 2</td>
#> <td style='border-bottom: 2px solid grey; text-align: center;'>2</td>
#> <td style='border-bottom: 2px solid grey; text-align: center;'>4</td>
#> </tr>
#> </tbody>
#> </table><h1>Fancy table</h1><table class='gmisc_table' style='border-collapse: collapse; margin-top: 1em; margin-bottom: 1em;' >
#> <thead>
#> <tr><td colspan='9' style='text-align: left;'>
#> Basic table with both column spanners (groups) and row groups</td></tr>
#> <tr>
#> <th style='border-top: 2px solid grey;'></th>
#> <th colspan='2' style='font-weight: 900; border-top: 2px solid grey; text-align: center;'></th><th style='border-bottom: none; border-top: 2px solid grey;' colspan=1>&nbsp;</th>
#> <th colspan='5' style='font-weight: 900; border-bottom: 1px solid grey; border-top: 2px solid grey; text-align: center;'>Column spanners</th>
#> </tr>
#> <tr>
#> <th style=''></th>
#> <th colspan='2' style='font-weight: 900; text-align: center;'></th><th style='border-bottom: none;' colspan=1>&nbsp;</th>
#> <th colspan='2' style='font-weight: 900; border-bottom: 1px solid grey; text-align: center;'>Cgroup 1</th><th style='border-bottom: none;' colspan=1>&nbsp;</th>
#> <th colspan='2' style='font-weight: 900; border-bottom: 1px solid grey; text-align: center;'>Cgroup 2&dagger;</th>
#> </tr>
#> <tr><th style='border-bottom: 1px solid grey;'></th>
#> <th style='font-weight: 900; border-bottom: 1px solid grey; text-align: center;'>1st hdr</th>
#> <th style='font-weight: 900; border-bottom: 1px solid grey; text-align: center;'>2nd hdr</th> 
#> <th style='font-weight: 900; border-bottom: 1px solid grey; text-align: center;' colspan=1>&nbsp;</th>
#> <th style='font-weight: 900; border-bottom: 1px solid grey; background-color: #f5fbff; text-align: center;'>3rd hdr</th>
#> <th style='font-weight: 900; border-bottom: 1px solid grey; background-color: #f5fbff; text-align: center;'>4th hdr</th> 
#> <th style='font-weight: 900; border-bottom: 1px solid grey; text-align: center; background-color: #f5fbff;' colspan=1>&nbsp;</th>
#> <th style='font-weight: 900; border-bottom: 1px solid grey; background-color: #f5fbff; text-align: center;'>5th hdr</th>
#> <th style='font-weight: 900; border-bottom: 1px solid grey; background-color: #f5fbff; text-align: center;'>6th hdr</th>
#> </tr>
#> </thead>
#> <tbody> 
#> <tr><td colspan='2' style='padding-left: .5em; padding-right: .2em; font-weight: 900;'>Group A</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right;'></td> 
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f5fbff; text-align: right;'></td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f5fbff; text-align: right;'></td> 
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right; background-color: #f5fbff;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f5fbff; text-align: right;'></td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f5fbff; text-align: right;'></td></tr>
#> <tr>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: left;'>&nbsp;&nbsp;1st row</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;'>1:1</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;'>1:2</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>1:3</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>1:4</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #f5fbff;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>1:5</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>1:6</td>
#> </tr>
#> <tr>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: left;'>&nbsp;&nbsp;2nd row</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;'>2:1</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;'>2:2</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>2:3</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>2:4</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #f5fbff;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>2:5</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>2:6</td>
#> </tr> 
#> <tr><td colspan='2' style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f7f7f7;'>Group B</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f7f7f7; text-align: right;'></td> 
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right; background-color: #F7F7F7;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right; background-color: #F6F9FB;'></td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right; background-color: #F6F9FB;'></td> 
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right; background-color: #F6F8F9;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right; background-color: #F6F9FB;'></td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right; background-color: #F6F9FB;'></td></tr>
#> <tr style='background-color: #f7f7f7;'>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: left;'>&nbsp;&nbsp;3rd row</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: right;'>3:1</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: right;'>3:2</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F7F7F7;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>3:3</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>3:4</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F8F9;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>3:5</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>3:6</td>
#> </tr>
#> <tr style='background-color: #f7f7f7;'>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: left;'>&nbsp;&nbsp;4th row</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: right;'>4:1</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: right;'>4:2</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F7F7F7;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>4:3</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>4:4</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F8F9;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>4:5</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>4:6</td>
#> </tr>
#> <tr style='background-color: #f7f7f7;'>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: left;'>&nbsp;&nbsp;5th row</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: right;'>5:1</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: right;'>5:2</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F7F7F7;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>5:3</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>5:4</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F8F9;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>5:5</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>5:6</td>
#> </tr>
#> <tr style='background-color: #f7f7f7;'>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: left;'>&nbsp;&nbsp;6th row</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: right;'>6:1</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f7f7f7; text-align: right;'>6:2</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F7F7F7;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>6:3</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>6:4</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F8F9;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>6:5</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #F6F9FB;'>6:6</td>
#> </tr> 
#> <tr><td colspan='2' style='padding-left: .5em; padding-right: .2em; font-weight: 900;'>Group C</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right;'></td> 
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f5fbff; text-align: right;'></td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f5fbff; text-align: right;'></td> 
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; text-align: right; background-color: #f5fbff;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f5fbff; text-align: right;'></td>
#> <td style='padding-left: .5em; padding-right: .2em; font-weight: 900; background-color: #f5fbff; text-align: right;'></td></tr>
#> <tr>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: left;'>&nbsp;&nbsp;7th row</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;'>7:1</td>
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;'>7:2</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>7:3</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>7:4</td> 
#> <td style='padding-left: .5em; padding-right: .2em; text-align: right; background-color: #f5fbff;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>7:5</td>
#> <td style='padding-left: .5em; padding-right: .2em; background-color: #f5fbff; text-align: right;'>7:6</td>
#> </tr>
#> <tr>
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; text-align: left;'>&nbsp;&nbsp;8th row</td>
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; text-align: right;'>8:1</td>
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; text-align: right;'>8:2</td> 
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; text-align: right;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; background-color: #f5fbff; text-align: right;'>8:3</td>
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; background-color: #f5fbff; text-align: right;'>8:4</td> 
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; text-align: right; background-color: #f5fbff;' colspan=1>&nbsp;</td>
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; background-color: #f5fbff; text-align: right;'>8:5</td>
#> <td style='padding-left: .5em; padding-right: .2em; border-bottom: 2px solid grey; background-color: #f5fbff; text-align: right;'>8:6</td>
#> </tr>
#> </tbody>
#> <tfoot><tr><td colspan='9'>
#> &dagger; A table footer commment</td></tr></tfoot>
#> </table>