From: dscott Date: Wed, 27 Jan 2016 12:04:32 +0000 (+0000) Subject: Added documentation of xtableList and print.xtableList. Other minor changes. X-Git-Url: https://git.donarmstrong.com/?p=xtable.git;a=commitdiff_plain;h=3c5fbf5e10f8409d2daef8bcb230888167b6d445 Added documentation of xtableList and print.xtableList. Other minor changes. git-svn-id: svn://scm.r-forge.r-project.org/svnroot/xtable@102 edb9625f-4e0d-4859-8d74-9fd3b1da38cb --- diff --git a/pkg/R/xtableFtable.R b/pkg/R/xtableFtable.R index 4187004..c4e0369 100644 --- a/pkg/R/xtableFtable.R +++ b/pkg/R/xtableFtable.R @@ -5,7 +5,7 @@ xtableFtable <- function(x, caption = NULL, label = NULL, align = NULL, quote = FALSE, method = c("non.compact", "row.compact", "col.compact", "compact"), - lsep = " | ", ...) { + lsep = " $\\vert$ ", ...) { method <- match.arg(method) saveMethod <- method xDim <- dim(x) @@ -78,7 +78,8 @@ print.xtableFtable <- function(x, NA.string = getOption("xtable.NA.string", ""), only.contents = getOption("xtable.only.contents", FALSE), add.to.row = getOption("xtable.add.to.row", NULL), - sanitize.text.function = getOption("xtable.sanitize.text.function", NULL), + sanitize.text.function = getOption("xtable.sanitize.text.function", + function(x){x}), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", @@ -137,7 +138,7 @@ print.xtableFtable <- function(x, } else { fmtFtbl[1:nColVars, nCharCols - 1] <- sanitize.colnames.function(fmtFtbl[1:nColVars, nCharCols - 1]) - } + } ## rotations are possible if (rotate.rownames){ fmtFtbl[1:dim(fmtFtbl)[1], 1:(nCharCols - 1)] <- diff --git a/pkg/R/xtableList.R b/pkg/R/xtableList.R index 775d5c7..9c7a602 100644 --- a/pkg/R/xtableList.R +++ b/pkg/R/xtableList.R @@ -46,7 +46,7 @@ print.xtableList <- function(x, hline.after = NULL, NA.string = getOption("xtable.NA.string", ""), include.rownames = getOption("xtable.include.rownames", TRUE), - include.colnames = getOption("xtable.include.colnames", TRUE), + colnames.format = "single", only.contents = getOption("xtable.only.contents", FALSE), add.to.row = NULL, sanitize.text.function = getOption("xtable.sanitize.text.function", NULL), @@ -72,7 +72,6 @@ print.xtableList <- function(x, width = getOption("xtable.width", NULL), comment = getOption("xtable.comment", TRUE), timestamp = getOption("xtable.timestamp", date()), - colnames.format = "single", ...) { ## Get number of rows for each table in list of tables @@ -103,14 +102,14 @@ print.xtableList <- function(x, xMessage <- attr(x, 'message') xMessage <- sapply(xMessage, sanitize.message.function) attr(x, 'message') <- xMessage - } + } if (colnames.format == "single"){ - + add.to.row <- list(pos = NULL, command = NULL) add.to.row$pos <- as.list(c(0, combinedRowNums[-length(x)], dim(combined)[1])) command <- sapply(x, attr, "subheading") - + add.to.row$command[1:length(x)] <- paste0(mRule,"\n\\multicolumn{", nCols, "}{l}{", command, "}\\\\\n") if ( (booktabs) & length(attr(x, "message") > 0) ){ @@ -123,7 +122,7 @@ print.xtableList <- function(x, collapse = "") add.to.row$command[length(x) + 1] <- paste0(bRule, add.to.row$command[length(x) + 1]) - + class(combined) <- c("xtableList", "data.frame") hline.after <- c(-1) include.colnames <- TRUE @@ -166,13 +165,13 @@ print.xtableList <- function(x, collapse = "") add.to.row$command[length(x) + 1] <- paste0(bRule, add.to.row$command[length(x) + 1]) - + class(combined) <- c("xtableList", "data.frame") hline.after <- NULL - + include.colnames <- FALSE } - + print.xtable(combined, type = type, floating = floating, diff --git a/pkg/man/print.xtable.Rd b/pkg/man/print.xtable.Rd index c8ca654..ce44b4d 100644 --- a/pkg/man/print.xtable.Rd +++ b/pkg/man/print.xtable.Rd @@ -138,7 +138,7 @@ The default uses the \code{sanitize.text.function}. } \item{math.style.negative}{In a LaTeX table, if \code{TRUE}, then use $-$ for the negative sign (as was the behavior prior to version 1.5-3). - Default value is \code{FALSE}.} + Default value is \code{FALSE}.} \item{math.style.exponents}{In a LaTeX table, if \code{TRUE} or \code{"$$"}, then use \verb{$5 \times 10^{5}$} for 5e5. If \code{"ensuremath"}, then use \verb{\\ensuremath{5 \times 10^{5}}} @@ -181,7 +181,8 @@ \item{comment}{If \code{TRUE}, the version and timestamp comment is included. Default value is \code{TRUE}. } \item{timestamp}{Timestamp to include in LaTeX comment. Set this - to \code{NULL} to exclude the timestamp. Default value is \code{date()}. } + to \code{NULL} to exclude the timestamp. Default value is + \code{date()}. } \item{...}{Additional arguments. (Currently ignored.) } } \details{ diff --git a/pkg/man/xtable-internal.Rd b/pkg/man/xtable-internal.Rd index 0e9b337..afd4728 100644 --- a/pkg/man/xtable-internal.Rd +++ b/pkg/man/xtable-internal.Rd @@ -1,6 +1,4 @@ \name{xtable-internal} -\alias{xtableList} -\alias{print.xtableList} \alias{xtableLSMeans} \title{Internal xtable Functions} diff --git a/pkg/man/xtable.Rd b/pkg/man/xtable.Rd index f632573..29efa7c 100644 --- a/pkg/man/xtable.Rd +++ b/pkg/man/xtable.Rd @@ -36,7 +36,7 @@ \title{Create Export Tables} \description{ - Convert an R object to an \code{xtable} object, which can + Convert an \R object to an \code{xtable} object, which can then be printed as a LaTeX or HTML table. } \usage{ @@ -44,7 +44,7 @@ xtable(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) } \arguments{ - \item{x}{An R object of class found among \code{methods(xtable)}. See + \item{x}{An \R object of class found among \code{methods(xtable)}. See below on how to write additional method functions for \code{xtable}.} \item{caption}{Character vector of length 1 or 2 containing the table's caption or title. If length is 2, the second item is the diff --git a/pkg/man/xtableFtable.Rd b/pkg/man/xtableFtable.Rd index 69c4a98..6e783a7 100644 --- a/pkg/man/xtableFtable.Rd +++ b/pkg/man/xtableFtable.Rd @@ -17,7 +17,7 @@ xtableFtable(x, caption = NULL, label = NULL, quote = FALSE, method = c("non.compact", "row.compact", "col.compact", "compact"), - lsep = " | ", ...) + lsep = " $\\\\vert$ ", ...) \method{print}{xtableFtable}(x, type = getOption("xtable.type", "latex"), @@ -35,7 +35,8 @@ xtableFtable(x, caption = NULL, label = NULL, NA.string = getOption("xtable.NA.string", ""), only.contents = getOption("xtable.only.contents", FALSE), add.to.row = getOption("xtable.add.to.row", NULL), - sanitize.text.function = getOption("xtable.sanitize.text.function", NULL), + sanitize.text.function = getOption("xtable.sanitize.text.function", + function(x){x}), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", @@ -81,7 +82,7 @@ xtableFtable(x, caption = NULL, label = NULL, denote left, right, and center alignment, respectively. Use \code{"p{3cm}"} etc. for a LaTeX column of the specified width. For HTML output the \code{"p"} alignment is interpreted as \code{"l"}, - ignoring the width request. + ignoring the width request. If \code{NULL} all row variable labels will be left aligned, separated from the data columns by a vertical line, and all data columns will be right aligned. The actual length of \code{align} @@ -113,10 +114,10 @@ xtableFtable(x, caption = NULL, label = NULL, \item{quote}{a character string giving the set of quoting characters for \code{format.ftable} used in \code{print.xtableFtable}; to disable quoting altogether, use \code{quote=""}.} - + \item{method}{string specifying how the \code{"xtableFtable"} object is printed in the \code{print} method. Can be abbreviated. Available - methods are (see the examples in \code{\link{print.ftable}}): + methods are (see the examples in \code{\link{print.ftable}}): \describe{ \item{"non.compact"}{the default representation of an \code{"ftable"} object.} @@ -181,7 +182,7 @@ xtableFtable(x, caption = NULL, label = NULL, tabular environment starts. This can be used to set the font size and a variety of other table settings. Initial backslashes are automatically prefixed, if not supplied by user. - Default value is \code{NULL}. } + Default value is \code{NULL}. } \item{hline.after}{When \code{type="latex"}, a vector of numbers between -1 and \code{nrow(x)}, inclusive, indicating the rows after which a horizontal line should appear. Repeated values are @@ -217,7 +218,7 @@ xtableFtable(x, caption = NULL, label = NULL, The default uses the \code{sanitize.text.function}. } \item{math.style.negative}{In a LaTeX table, if \code{TRUE}, then use $-$ for the negative sign (as was the behavior prior to version 1.5-3). - Default value is \code{FALSE}.} + Default value is \code{FALSE}.} \item{math.style.exponents}{In a LaTeX table, if \code{TRUE} or \code{"$$"}, then use \verb{$5 \times 10^{5}$} for 5e5. If \code{"ensuremath"}, then use \verb{\\ensuremath{5 \times 10^{5}}} @@ -238,7 +239,7 @@ xtableFtable(x, caption = NULL, label = NULL, included in this list. Default value is \code{NULL}.} \item{rotate.rownames}{If \code{TRUE}, the row names and labels, and - column variable names are displayed vertically in LaTeX. + column variable names are displayed vertically in LaTeX. Default value is \code{FALSE}.} \item{rotate.colnames}{If \code{TRUE}, the column names and labels, and row variable names are displayed vertically in LaTeX. @@ -260,7 +261,8 @@ xtableFtable(x, caption = NULL, label = NULL, \item{comment}{If \code{TRUE}, the version and timestamp comment is included. Default value is \code{TRUE}. } \item{timestamp}{Timestamp to include in LaTeX comment. Set this - to \code{NULL} to exclude the timestamp. Default value is \code{date()}. } + to \code{NULL} to exclude the timestamp. Default value is + \code{date()}. } \item{...}{Additional arguments. (Currently ignored.) } } \details{ @@ -300,17 +302,21 @@ xtableFtable(x, caption = NULL, label = NULL, For \code{print.xtableFtable} a character string which will produce a formatted table when included in a LaTeX document. - + } \references{ Fairbairns, Robin (2005) \emph{Tables longer than a single page.} The UK List of TeX Frequently Asked Questions on the - Web. \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=longtab} + Web. \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=longtab} } \author{ David Scott \email{d.scott@auckland.ac.nz}. } \note{ + The functions \code{xtableFtable} and \code{print.xtableFtable} are + new and their behaviour may change in the future based on user + experience and recommendations. + It is not recommended that users change the values of \code{align}, \code{digits} or \code{align}. First of all, alternative values have not been tested. Secondly, it is most likely that to determine diff --git a/pkg/man/xtableList.Rd b/pkg/man/xtableList.Rd new file mode 100644 index 0000000..ce66636 --- /dev/null +++ b/pkg/man/xtableList.Rd @@ -0,0 +1,276 @@ +\name{xtableList} +\alias{xtableList} +\alias{print.xtableList} + +\title{ + Create and Export Lists of Tables +} +\description{ + \code{xtableList} creates an object which contains information about + lists of table which can be used by \code{print.xtableList} to produce + a character string which when included in a document produces a nicely + formatted table made up of the information in the individual tables + which comprised the original list of tables. +} +\usage{ +xtableList(x, caption = NULL, label = NULL, + align = NULL, digits = NULL, display = NULL, ...) + +\method{print}{xtableList}(x, + type = getOption("xtable.type", "latex"), + file = getOption("xtable.file", ""), + append = getOption("xtable.append", FALSE), + floating = getOption("xtable.floating", TRUE), + floating.environment = getOption("xtable.floating.environment", "table"), + table.placement = getOption("xtable.table.placement", "ht"), + caption.placement = getOption("xtable.caption.placement", "bottom"), + caption.width = getOption("xtable.caption.width", NULL), + latex.environments = getOption("xtable.latex.environments", c("center")), + tabular.environment = getOption("xtable.tabular.environment", "tabular"), + size = getOption("xtable.size", NULL), + hline.after = NULL, + NA.string = getOption("xtable.NA.string", ""), + include.rownames = getOption("xtable.include.rownames", TRUE), + colnames.format = "single", + only.contents = getOption("xtable.only.contents", FALSE), + add.to.row = NULL, + sanitize.text.function = getOption("xtable.sanitize.text.function", NULL), + sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", + sanitize.text.function), + sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", + sanitize.text.function), + sanitize.subheadings.function = + getOption("xtable.sanitize.subheadings.function", + sanitize.text.function), + sanitize.message.function = + getOption("xtable.sanitize.message.function", + sanitize.text.function), + math.style.negative = getOption("xtable.math.style.negative", FALSE), + math.style.exponents = getOption("xtable.math.style.exponents", FALSE), + html.table.attributes = getOption("xtable.html.table.attributes", "border=1"), + print.results = getOption("xtable.print.results", TRUE), + format.args = getOption("xtable.format.args", NULL), + rotate.rownames = getOption("xtable.rotate.rownames", FALSE), + rotate.colnames = getOption("xtable.rotate.colnames", FALSE), + booktabs = getOption("xtable.booktabs", FALSE), + scalebox = getOption("xtable.scalebox", NULL), + width = getOption("xtable.width", NULL), + comment = getOption("xtable.comment", TRUE), + timestamp = getOption("xtable.timestamp", date()), + ...) +} +\arguments{ + \item{x}{For \code{xtableList}, a list of \R objects all of the same + class, being a class found among \code{methods(xtable)}. + For \code{print.xtableList}, an object of class \code{xtableList} + produced by a call to \code{xtableList}.} + \item{caption}{Character vector of length 1 or 2 containing the + table's caption or title. If length is 2, the second item is the + "short caption" used when LaTeX generates a "List of Tables". Set to + \code{NULL} to suppress the caption. Default value is \code{NULL}. } + \item{label}{Character vector of length 1 containing the LaTeX label + or HTML anchor. Set to \code{NULL} to suppress the label. Default + value is \code{NULL}. } + \item{align}{Character vector of length equal to the number of columns + of the resulting table, indicating the alignment of the corresponding + columns. Also, \code{"|"} may be used to produce vertical lines + between columns in LaTeX tables, but these are effectively ignored + when considering the required length of the supplied vector. If a + character vector of length one is supplied, it is split as + \code{strsplit(align, "")[[1]]} before processing. Since the row + names are printed in the first column, the length of \code{align} is + one greater than \code{ncol(x)} if \code{x} is a + \code{data.frame}. Use \code{"l"}, \code{"r"}, and \code{"c"} to + denote left, right, and center alignment, respectively. Use + \code{"p{3cm}"} etc. for a LaTeX column of the specified width. For + HTML output the \code{"p"} alignment is interpreted as \code{"l"}, + ignoring the width request. Default depends on the class of + \code{x}. } + \item{digits}{ + Either \code{NULL}, or a vector of length one, or a vector of length + equal to the number of columns in the resulting table, indicating + the number of digits to display in the corresponding columns, or a + list if length equal to the number of R objects making up \code{x}, + all members being vectors of the same length, either length one or + of length equal to the number of columns in the resulting table. See + \sQuote{Details} for further information.} + \item{display}{ + Either \code{NULL}, or a vector of length one, or a vector of length + equal to the number of columns in the resulting table, indicating + the format of the corresponding columns, or a + list if length equal to the number of R objects making up \code{x}, + all members being vectors of the same length, either length one or + of length equal to the number of columns in the resulting table. See + \sQuote{Details} for further information.} + \item{type}{Type of table to produce. Possible values for \code{type} + are \code{"latex"} or \code{"html"}. + Default value is \code{"latex"}.} + \item{file}{Name of file where the resulting code should be saved. If + \code{file=""}, output is displayed on screen. Note that the + function also (invisibly) returns a character vector of the results + (which can be helpful for post-processing). + Default value is \code{""}.} + \item{append}{If \code{TRUE} and \code{file!=""}, code will be + appended to \code{file} instead of overwriting \code{file}. + Default value is \code{FALSE}.} + \item{floating}{If \code{TRUE} and \code{type="latex"}, the resulting + table will be a floating table (using, for example, + \code{\\begin\{table\}} and \code{\\end\{table\}}). See + \code{floating.environment} below. + Default value is \code{TRUE}. } + \item{floating.environment}{If \code{floating=TRUE} and + \code{type="latex"}, the resulting table uses the specified floating + environment. Possible values include \code{"table"}, \code{"table*"}, + and other floating environments defined in LaTeX packages. + Default value is \code{"table"}.} + \item{table.placement}{If \code{floating=TRUE} and + \code{type="latex"}, the floating table will have placement given by + \code{table.placement} where \code{table.placement} must be + \code{NULL} or contain only elements of + \{"h","t","b","p","!","H"\}. + Default value is \code{"ht"}.} + \item{caption.placement}{The caption will be placed at the bottom + of the table if \code{caption.placement} is \code{"bottom"} and at + the top of the table if it equals \code{"top"}. + Default value is \code{"bottom"}.} + \item{caption.width}{The caption will be placed in a \code{"parbox"} + of the specified width if \code{caption.width} is not \code{NULL} and + \code{type="latex"}. Default value is \code{NULL}.} + \item{latex.environments}{If \code{floating=TRUE} and + \code{type="latex"}, the specified LaTeX environments (provided as + a character vector) will enclose the tabular environment. + Default value is \code{"center"}. } + \item{tabular.environment}{When \code{type="latex"}, the tabular + environment that will be used. + When working with tables that extend more than one page, using + \code{tabular.environment="longtable"} with the corresponding + LaTeX package (see Fairbairns, 2005) allows one to typeset them + uniformly. Note that \code{floating} should be set to + \code{FALSE} when using the \code{longtable} environment. + Default value is \code{"tabular"}.} + \item{size}{A character vector that is inserted just before the + tabular environment starts. This can be used to set the font size + and a variety of other table settings. Initial backslashes are + automatically prefixed, if not supplied by user. + Default value is \code{NULL}. } + \item{hline.after}{When \code{type="latex"}, a vector of numbers + between -1 and the number of rows in the resulting table, inclusive, + indicating the rows after which a horizontal line should + appear. Determining row numbers is not straightforward since some + lines in the resulting table don't enter into the count. The + default depends on the value of \code{col.names.format}.} + \item{NA.string}{String to be used for missing values in table + entries. + Default value is \code{""}.} + \item{include.rownames}{If \code{TRUE} the rows names are + printed. + Default value is \code{TRUE}.} + \item{colnames.format}{Either \code{"single"} or \code{"multiple"}. + Default is \code{"single"}.} + \item{only.contents}{If \code{TRUE} only the rows of the + table are printed. + Default value is \code{FALSE}. } + \item{add.to.row}{A list of two components. The first component (which + should be called 'pos') is a list that contains the position of rows on + which extra commands should be added at the end. The second + component (which should be called 'command') is a character vector + of the same length as the first component, which contains the command + that should be added at the end of the specified rows. + Default value is \code{NULL}, i.e. do not add commands.} + \item{sanitize.text.function}{All non-numeric entries (except row and + column names) are sanitized in an attempt to remove characters which + have special meaning for the output format. If + \code{sanitize.text.function} is not \code{NULL}, it should + be a function taking a character vector and returning one, and will + be used for the sanitization instead of the default internal + function. + Default value is \code{NULL}.} + \item{sanitize.rownames.function}{Like the + \code{sanitize.text.function}, but applicable to row names. + The default uses the \code{sanitize.text.function}. } + \item{sanitize.colnames.function}{Like the + \code{sanitize.text.function}, but applicable to column names. + The default uses the \code{sanitize.text.function}. } + \item{sanitize.subheadings.function}{Like the + \code{sanitize.text.function}, but applicable to subheadings. + The default uses the \code{sanitize.text.function}. } + \item{sanitize.message.function}{Like the + \code{sanitize.text.function}, but applicable to the message. + The default uses the \code{sanitize.text.function}. } + \item{math.style.negative}{In a LaTeX table, if \code{TRUE}, then use + $-$ for the negative sign (as was the behavior prior to version 1.5-3). + Default value is \code{FALSE}.} + \item{math.style.exponents}{In a LaTeX table, if \code{TRUE} or + \code{"$$"}, then use \verb{$5 \times 10^{5}$} for 5e5. If + \code{"ensuremath"}, then use \verb{\\ensuremath{5 \times 10^{5}}} + for 5e5. If \code{"UTF-8"} or \code{"UTF-8"}, then use UTF-8 to + approximate the LaTeX typsetting for 5e5. + Default value is \code{FALSE}.} + \item{html.table.attributes}{In an HTML table, attributes associated + with the \code{} tag. + Default value is \code{"border=1"}.} + \item{print.results}{If \code{TRUE}, the generated table is printed to + standard output. Set this to \code{FALSE} if you will just be using + the character vector that is returned invisibly. + Default value is \code{TRUE}.} + \item{format.args}{List of arguments for the \code{formatC} function. + For example, standard German number separators can be specified as + \code{format.args=list(big.mark = "'", decimal.mark = + ","))}. The arguments \code{digits} and \code{format} should not be + included in this list. See details. + Default value is \code{NULL}.} + \item{rotate.rownames}{If \code{TRUE}, the row names are displayed + vertically in LaTeX. + Default value is \code{FALSE}.} + \item{rotate.colnames}{If \code{TRUE}, the column names are displayed + vertically in LaTeX. + Default value is \code{FALSE}.} + \item{booktabs}{If \code{TRUE}, the \code{toprule}, \code{midrule} and + \code{bottomrule} commands from the LaTeX "booktabs" package are used + rather than \code{hline} for the horizontal line tags. } + \item{scalebox}{If not \code{NULL}, a \code{scalebox} clause will be + added around the tabular environment with the specified value used + as the scaling factor. + Default value is \code{NULL}.} + \item{width}{If not \code{NULL}, the specified value is included in + parentheses between the tabular environment \code{begin} tag and the + alignment specification. This allows specification of the table + width when using tabular environments such as \code{tabular*} and + \code{tabularx}. Note that table width specification is not + supported with the \code{tabular} or \code{longtable} environments. + Default value is \code{NULL}.} + \item{comment}{If \code{TRUE}, the version and timestamp comment is + included. Default value is \code{TRUE}. } + \item{timestamp}{Timestamp to include in LaTeX comment. Set this + to \code{NULL} to exclude the timestamp. Default value is + \code{date()}. } + \item{\dots}{Additional arguments. (Currently ignored.)} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\author{ + David Scott \email{d.scott@auckland.ac.nz}. +} +\note{ + The functions \code{xtableList} and \code{print.xtableList} are + new and their behaviour may change in the future based on user + experience and recommendations. +} + + +\seealso{ + \code{\link{xtable}}, \code{\link{caption}}, \code{\link{label}}, + \code{\link{align}}, \code{\link{digits}}, \code{\link{display}}, + \code{\link{formatC}} +} +\examples{ +} +\keyword{ print } diff --git a/pkg/vignettes/xtableGallery.Rnw b/pkg/vignettes/xtableGallery.Rnw index 14dbd6f..bb41fab 100644 --- a/pkg/vignettes/xtableGallery.Rnw +++ b/pkg/vignettes/xtableGallery.Rnw @@ -194,13 +194,11 @@ print.xtableFtable(xftbl, rotate.rownames = TRUE) @ %def Booktabs is incompatible with vertical lines in tables, so the -vertical dividing line is removed. The separator \code{lsep} may require special treatment. +vertical dividing line is removed. <>= -xftbl <- xtableFtable(tbl, method = "compact", lsep = " $\\vert$ ") -sanitize.text.function <- function(x){x} -print.xtableFtable(xftbl, sanitize.text.function = sanitize.text.function, - booktabs = TRUE) +xftbl <- xtableFtable(tbl, method = "compact") +print.xtableFtable(xftbl, booktabs = TRUE) @ %def \p @@ -227,8 +225,7 @@ tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) xftbl <- xtableFtable(tbl, method = "row.compact") -sanitize.text.function <- function(x){x} -print.xtableFtable(xftbl, sanitize.text.function = sanitize.text.function, +print.xtableFtable(xftbl, sanitize.rownames.function = large, sanitize.colnames.function = bold, rotate.colnames = TRUE,