+ ## Create headings for columns if multiple headings are needed\r
+ if (colnames.format == "multiple"){\r
+ if (is.null(sanitize.colnames.function)) {\r
+ colHead <- names(x[[1]])\r
+ } else {\r
+ colHead <- sanitize.colnames.function(names(x[[1]]))\r
+ }\r
+ if (rotate.colnames) {\r
+ colHead <- paste("\\begin{sideways}", colHead, "\\end{sideways}")\r
+ }\r
+ colHead <- paste0(colHead, collapse = " & ")\r
+ if (include.rownames) {\r
+ colHead <- paste0(" & ", colHead)\r
+ }\r
+ colHead <- paste0(tRule, "\n", colHead, " \\\\", mRule, "\n")\r
+ add.to.row <- list(pos = NULL, command = NULL)\r
+ add.to.row$pos <- as.list(c(0, c(combinedRowNums[1:length(x)])))\r
+ command <- sapply(x, attr, "subheading")\r
+ add.to.row$command[1] <-\r
+ paste0("\n\\multicolumn{", nCols, "}{l}{", command[1], "}", " \\\\ \n",\r
+ colHead)\r
+ add.to.row$command[2:length(x)] <-\r
+ paste0(bRule,\r
+ "\\\\ \n\\multicolumn{", nCols, "}{l}{",\r
+ command[2:length(x)], "}",\r
+ "\\\\ \n",\r
+ colHead)\r
+ if ( (booktabs) & length(attr(x, "message") > 0) ){\r
+ attr(x, "message")[1] <-\r
+ paste0("\\rule{0em}{2.5ex}", attr(x, "message")[1])\r
+ }\r
+ add.to.row$command[length(x) + 1] <-\r
+ paste0("\n\\multicolumn{", nCols, "}{l}{",\r
+ attr(x, "message"), "}\\\\\n",\r
+ collapse = "")\r
+ add.to.row$command[length(x) + 1] <-\r
+ paste0(bRule, add.to.row$command[length(x) + 1])\r
+ \r
+ class(combined) <- c("xtableList", "data.frame")\r
+ hline.after <- NULL\r
+ \r
+ include.colnames <- FALSE\r
+ }\r
+ \r
+ print.xtable(combined,\r
+ type = type,\r
+ floating = floating,\r
+ floating.environment = floating.environment,\r
+ table.placement = table.placement,\r
+ caption.placement = caption.placement,\r
+ caption.width = caption.width,\r
+ latex.environments = latex.environments,\r
+ tabular.environment = tabular.environment,\r
+ size = size,\r
+ hline.after = hline.after,\r
+ NA.string = NA.string,\r
+ include.rownames = include.rownames,\r
+ include.colnames = include.colnames,\r
+ only.contents = only.contents,\r
+ add.to.row = add.to.row,\r
+ sanitize.text.function = sanitize.text.function,\r
+ sanitize.rownames.function = sanitize.rownames.function,\r
+ sanitize.colnames.function = sanitize.colnames.function,\r
+ math.style.negative = math.style.negative,\r
+ html.table.attributes = html.table.attributes,\r
+ print.results = print.results,\r
+ format.args = format.args,\r
+ rotate.rownames = rotate.rownames,\r
+ rotate.colnames = rotate.colnames,\r
+ booktabs = booktabs,\r
+ scalebox = scalebox,\r
+ width = width,\r
+ comment = comment,\r
+ timestamp = timestamp,\r
+ ...)\r
+ } else {\r
+ stop("print.xtableList not yet implemented for this type")\r