Title: | Export Tables to LaTeX or HTML |
---|---|
Description: | Coerce data to LaTeX and HTML tables. |
Authors: | David B. Dahl [aut], David Scott [aut, cre], Charles Roosen [aut], Arni Magnusson [aut], Jonathan Swinton [aut], Ajay Shah [ctb], Arne Henningsen [ctb], Benno Puetz [ctb], Bernhard Pfaff [ctb], Claudio Agostinelli [ctb], Claudius Loehnert [ctb], David Mitchell [ctb], David Whiting [ctb], Fernando da Rosa [ctb], Guido Gay [ctb], Guido Schulz [ctb], Ian Fellows [ctb], Jeff Laake [ctb], John Walker [ctb], Jun Yan [ctb], Liviu Andronic [ctb], Markus Loecher [ctb], Martin Gubri [ctb], Matthieu Stigler [ctb], Robert Castelo [ctb], Seth Falcon [ctb], Stefan Edwards [ctb], Sven Garbade [ctb], Uwe Ligges [ctb] |
Maintainer: | David Scott <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.8-6 |
Built: | 2024-11-08 02:56:49 UTC |
Source: | https://github.com/r-forge/xtable |
Suggest an appropriate alignment, number of digits, and display type
for xtable
.
autoformat(xtab, zap = getOption("digits")) xalign(x, pad = TRUE) xdigits(x, pad = TRUE, zap = getOption("digits")) xdisplay(x, pad = TRUE)
autoformat(xtab, zap = getOption("digits")) xalign(x, pad = TRUE) xdigits(x, pad = TRUE, zap = getOption("digits")) xdisplay(x, pad = TRUE)
xtab |
an object of class |
x |
a vector, matrix, or data frame. |
pad |
whether to format row names, when |
zap |
the number of digits passed to |
autoformat
returns a copy of xtab
, after applying
xalign
, xdigits
, and xdisplay
.
xalign
returns a character vector consisting of "l"
and
"r"
elements, for left/right alignment.
xdigits
returns an integer vector.
xdisplay
returns a character vector of "d"
, "f"
,
and "s"
elements, for integer/double/string display.
Arni Magnusson.
xtable
, align
, digits
,
display
## 1 Vector xalign(precip) xdigits(precip) xdisplay(precip) ## 2 Data frame head(mtcars) xdigits(mtcars, pad = FALSE) xdigits(mtcars, pad = TRUE) xalign(mtcars) xdisplay(mtcars) ## 3 Autoformat when xtable is created xtable(mtcars, align = xalign(mtcars), digits = xdigits(mtcars), display = xdisplay(mtcars)) ## equivalent shortcut xtable(mtcars, auto = TRUE) ## 4 Autoformat existing xtable mt <- xtable(mtcars) align(mt) <- xalign(mt) digits(mt) <- xdigits(mt) display(mt) <- xdisplay(mt) ## equivalent shortcut mt <- autoformat(mt)
## 1 Vector xalign(precip) xdigits(precip) xdisplay(precip) ## 2 Data frame head(mtcars) xdigits(mtcars, pad = FALSE) xdigits(mtcars, pad = TRUE) xalign(mtcars) xdisplay(mtcars) ## 3 Autoformat when xtable is created xtable(mtcars, align = xalign(mtcars), digits = xdigits(mtcars), display = xdisplay(mtcars)) ## equivalent shortcut xtable(mtcars, auto = TRUE) ## 4 Autoformat existing xtable mt <- xtable(mtcars) align(mt) <- xalign(mt) digits(mt) <- xdigits(mt) display(mt) <- xdisplay(mt) ## equivalent shortcut mt <- autoformat(mt)
Function returning and displaying or writing to disk the LaTeX or HTML
code associated with the supplied object of class xtable
.
## S3 method for class 'xtable' print(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 = getOption("xtable.hline.after", c(-1,0,nrow(x))), NA.string = getOption("xtable.NA.string", ""), include.rownames = getOption("xtable.include.rownames", TRUE), include.colnames = getOption("xtable.include.colnames", TRUE), 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.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.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()), ...)
## S3 method for class 'xtable' print(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 = getOption("xtable.hline.after", c(-1,0,nrow(x))), NA.string = getOption("xtable.NA.string", ""), include.rownames = getOption("xtable.include.rownames", TRUE), include.colnames = getOption("xtable.include.colnames", TRUE), 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.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.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()), ...)
x |
An object of class |
type |
Type of table to produce. Possible values for |
file |
Name of file where the resulting code should be saved. If
|
append |
If |
floating |
If |
floating.environment |
If |
table.placement |
If |
caption.placement |
The caption will be placed at the bottom
of the table if |
caption.width |
The caption will be placed in a |
latex.environments |
If |
tabular.environment |
When |
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 |
hline.after |
When |
NA.string |
String to be used for missing values in table
entries.
Default value is |
include.rownames |
If |
include.colnames |
If |
only.contents |
If |
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 |
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
|
sanitize.rownames.function |
Like the
|
sanitize.colnames.function |
Like the
|
math.style.negative |
In a LaTeX table, if |
math.style.exponents |
In a LaTeX table, if |
html.table.attributes |
In an HTML table, attributes associated
with the |
print.results |
If |
format.args |
List of arguments for the |
rotate.rownames |
If |
rotate.colnames |
If |
booktabs |
If |
scalebox |
If not |
width |
If not |
comment |
If |
timestamp |
Timestamp to include in LaTeX comment. Set this
to |
... |
Additional arguments. (Currently ignored.) |
This function displays or writes to disk the code to produce a table
associated with an object x
of class "xtable"
.
The resulting code is either a LaTeX or HTML table, depending on the
value of type
. The function also (invisibly) returns a
character vector of the results (which can be helpful for
post-processing).
Since version 1.4 the non default behavior of hline.after
is
changed. To obtain the same results as the previous versions add to
the hline.after
vector the vector c(-1, 0, nrow(x))
where nrow(x)
is the numbers of rows of the object.
From version 1.4-3, all non-numeric columns are sanitized, and all
LaTeX special characters are sanitized for LaTeX output. See Section
3 of the xtableGallery
vignette for an example of customizing
the sanitization. From version 1.4-4, the sanitization also applies to
column names. To remove any text sanitization, specify
sanitize.text.function=function(x){x}
.
From version 1.6-1 the default values for the arguments other than
x
are obtained using getOption()
. Hence the user can
set the values once with options()
rather than setting them in
every call to print.xtable()
.
The argument format.args
is used to supply arguments to the
formatC
function, but will throw an error if values for
digits
or format
are included in the list of
arguments. The recommended approach to specify digits
is to supply
the argument digits
to xtable
, and to specify
format
supply the argument display
to xtable
. See
the examples.
David Dahl [email protected] with contributions and suggestions from many others (see source code).
The TeX FAQ, Tables longer than a single page. https://texfaq.org/FAQ-longtab
xtable
, caption
, label
,
align
, digits
, display
,
formatC
df <- data.frame(A = c(1.00123, 33.1, 6), B = c(111111, 3333333, 3123.233)) ## The following code gives the error ## formal argument "digits" matched by multiple actual arguments ## print(xtable(df, display = c("s","e","e")), ## format.args = list(digits = 3, big.mark = " ", decimal.mark = ",")) ## specify digits as argument to xtable instead print(xtable(df, display = c("s","f","f"), digits = 4), format.args = list(big.mark = " ", decimal.mark = ",")) ## The following code gives the error ## formal argument "format" matched by multiple actual arguments ## print(xtable(df, digits = 4), ## format.args = list(format = c("s","e","e"), ## big.mark = " ", decimal.mark = ",")) ## specify format using display argument in xtable print(xtable(df, display = c("s","e","e"), digits = 4), format.args = list(big.mark = " ", decimal.mark = ","))
df <- data.frame(A = c(1.00123, 33.1, 6), B = c(111111, 3333333, 3123.233)) ## The following code gives the error ## formal argument "digits" matched by multiple actual arguments ## print(xtable(df, display = c("s","e","e")), ## format.args = list(digits = 3, big.mark = " ", decimal.mark = ",")) ## specify digits as argument to xtable instead print(xtable(df, display = c("s","f","f"), digits = 4), format.args = list(big.mark = " ", decimal.mark = ",")) ## The following code gives the error ## formal argument "format" matched by multiple actual arguments ## print(xtable(df, digits = 4), ## format.args = list(format = c("s","e","e"), ## big.mark = " ", decimal.mark = ",")) ## specify format using display argument in xtable print(xtable(df, display = c("s","e","e"), digits = 4), format.args = list(big.mark = " ", decimal.mark = ","))
For an object of class "xtableMatharray"
, returns the LaTeX
commands to produce an array.
## S3 method for class 'xtableMatharray' print(x, print.results = TRUE, format.args = getOption("xtable.format.args", NULL), scalebox = getOption("xtable.scalebox", NULL), comment = FALSE, timestamp = NULL, ...)
## S3 method for class 'xtableMatharray' print(x, print.results = TRUE, format.args = getOption("xtable.format.args", NULL), scalebox = getOption("xtable.scalebox", NULL), comment = FALSE, timestamp = NULL, ...)
x |
An object of class |
print.results |
If |
format.args |
List of arguments for the |
scalebox |
If not |
comment |
If |
timestamp |
Timestamp to include in LaTeX comment. Set this
to |
... |
Additional arguments. (Currently ignored.) |
This command prints an array of numbers which may be included in a
mathematical expression in a LaTeX document created using Sweave
or knitr. Internally it calls print.data.frame
but with
special values for the arguments, namely that the tabular environment
is array
, row names and column names are not included, and there
are no horizontal lines. Note that the default values for the arguments
comment
and timestamp
are different to the default values
for print.xtable
, the justification being that comments would
make the resulting LaTeX harder to read.
A character vector containing the LaTeX code for incorporating an array in a mathematical expression.
David Scott [email protected].
V <- matrix(c(1.140380e-03, 3.010497e-05, 7.334879e-05, 3.010497e-05, 3.320683e-04, -5.284854e-05, 7.334879e-05, -5.284854e-05, 3.520928e-04), nrow = 3) ### Simple test of print.xtableMatharray print.xtableMatharray(xtable(V, display = rep("E", 4))) class(V) <- c("xtableMatharray") class(V) ### Test without any additional arguments mth <- xtableMatharray(V) str(mth) print(mth) ### Test with arguments to xtable mth <- xtableMatharray(V, display = rep("E", 4)) str(mth) print(mth) mth <- xtableMatharray(V, digits = 6) str(mth) print(mth) ### Test with additional print.xtableMatharray arguments mth <- xtableMatharray(V, digits = 6) str(mth) print(mth, format.args = list(decimal.mark = ",")) print(mth, scalebox = 0.5) print(mth, comment = TRUE) print(mth, timestamp = "2000-01-01") print(mth, comment = TRUE, timestamp = "2000-01-01")
V <- matrix(c(1.140380e-03, 3.010497e-05, 7.334879e-05, 3.010497e-05, 3.320683e-04, -5.284854e-05, 7.334879e-05, -5.284854e-05, 3.520928e-04), nrow = 3) ### Simple test of print.xtableMatharray print.xtableMatharray(xtable(V, display = rep("E", 4))) class(V) <- c("xtableMatharray") class(V) ### Test without any additional arguments mth <- xtableMatharray(V) str(mth) print(mth) ### Test with arguments to xtable mth <- xtableMatharray(V, display = rep("E", 4)) str(mth) print(mth) mth <- xtableMatharray(V, digits = 6) str(mth) print(mth) ### Test with additional print.xtableMatharray arguments mth <- xtableMatharray(V, digits = 6) str(mth) print(mth, format.args = list(decimal.mark = ",")) print(mth, scalebox = 0.5) print(mth, comment = TRUE) print(mth, timestamp = "2000-01-01") print(mth, comment = TRUE, timestamp = "2000-01-01")
Functions for sanitizing elements of a table produced by xtable. Used for dealing with characters which have special meaning in the output format.
sanitize(str, type = "latex") sanitize.numbers(str, type, math.style.negative = FALSE, math.style.exponents = FALSE) sanitize.final(str, type) as.is(str) as.math(str, ...)
sanitize(str, type = "latex") sanitize.numbers(str, type, math.style.negative = FALSE, math.style.exponents = FALSE) sanitize.final(str, type) as.is(str) as.math(str, ...)
str |
A character object to be sanitized. |
type |
Type of table to produce. Possible values for |
math.style.negative |
In a LaTeX table, if |
math.style.exponents |
In a LaTeX table, if |
... |
Additional arguments. Character strings or character vectors. |
If type
is "latex"
, sanitize()
will replace
special characters such as &
and the like by strings which will
reproduce the actual character, e.g. &
is replaced by
\&
.
If type
is "html"
, sanitize()
will replace
special characters such as <
and the like by strings which will
reproduce the actual character, e.g. <
is replaced by
<
.
When math.style.negative
is TRUE
, and type
is
"latex"
, $-$ is used for the negative sign rather than a
simple hyphen (-). No effect when type
is "html"
.
When type
is "latex"
, and math.style.exponents
is TRUE
or "$$"
, then use $5 \times 10^{5}$
for
5e5. If "ensuremath"
, then use \ensuremath{5 \times
10^{5}}
for 5e5. If "UTF-8"
or "UTF-8"
, then use UTF-8
to approximate the LaTeX typsetting for 5e5.
When type
is "latex"
sanitize.final
has no
effect. When type
is "html"
, multiple spaces are
replaced by a single space and occurrences of ' align="left"'
are eliminated.
as.is
and as.math
are trivial helper functions to
disable sanitizing and to insert a some mathematics in a string
respectively.
Returns the sanitized character object.
Code was extracted from print.xtable()
, in version 1.8.0 of
xtable. Various authors contributed the original code: Jonathan
Swinton <[email protected]>, Uwe Ligges
<[email protected]>, and probably David B. Dahl
<[email protected]>.
as.is
and as.math
suggested and provided by Stefan
Edwards <[email protected]>.
insane <- c("&",">", ">","_","%","$","\\","#","^","~","{","}") names(insane) <- c("Ampersand","Greater than","Less than", "Underscore","Percent","Dollar", "Backslash","Hash","Caret","Tilde", "Left brace","Right brace") sanitize(insane, type = "latex") insane <- c("&",">","<") names(insane) <- c("Ampersand","Greater than","Less than") sanitize(insane, type = "html") x <- rnorm(10) sanitize.numbers(x, "latex", TRUE) sanitize.numbers(x*10^(10), "latex", TRUE, TRUE) sanitize.numbers(x, "html", TRUE, TRUE) as.is(insane) as.math("x10^10", ": mathematical expression")
insane <- c("&",">", ">","_","%","$","\\","#","^","~","{","}") names(insane) <- c("Ampersand","Greater than","Less than", "Underscore","Percent","Dollar", "Backslash","Hash","Caret","Tilde", "Left brace","Right brace") sanitize(insane, type = "latex") insane <- c("&",">","<") names(insane) <- c("Ampersand","Greater than","Less than") sanitize(insane, type = "html") x <- rnorm(10) sanitize.numbers(x, "latex", TRUE) sanitize.numbers(x*10^(10), "latex", TRUE, TRUE) sanitize.numbers(x, "html", TRUE, TRUE) as.is(insane) as.math("x10^10", ": mathematical expression")
Private functions for conveniently working with strings.
string(text,file="",append=FALSE) ## S3 method for class 'string' print(x,...) ## S3 method for class 'string' x + y as.string(x,file="",append=FALSE) is.string(x)
string(text,file="",append=FALSE) ## S3 method for class 'string' print(x,...) ## S3 method for class 'string' x + y as.string(x,file="",append=FALSE) is.string(x)
text |
A character object. |
file |
Name of the file that should receive the printed string. |
append |
Should the printed string be appended to the file? |
x |
A |
y |
A |
... |
Additional arguments. (Currently ignored.) |
These functions are private functions used by print.xtable
. They are
not intended to be used elsewhere.
David Dahl [email protected] with contributions and suggestions from many others (see source code).
Functions retrieving or setting table attributes for the supplied object of class "xtable"
.
caption(x,...) caption(x) <- value label(x,...) label(x) <- value align(x,...) align(x) <- value digits(x,...) digits(x) <- value display(x,...) display(x) <- value
caption(x,...) caption(x) <- value label(x,...) label(x) <- value align(x,...) align(x) <- value digits(x,...) digits(x) <- value display(x,...) display(x) <- value
x |
An |
value |
The value of the corresponding attribute. |
... |
Additional arguments. (Currently ignored.) |
These functions retrieve or set table attributes of the object x
of class "xtable"
. See
xtable
for a description of the options.
David Dahl [email protected] with contributions and suggestions from many others (see source code).
autoformat
, xalign
, xdigits
,
xdisplay
This data set contains math scores and demographic data of 100 randomly selected students participating in the Texas Assessment of Academic Skills (TAAS).
data(tli)
data(tli)
A data.frame
containing 100 observations with the
following columns:
grade
Year in school of student
sex
Gender of student
disadvg
Is the student economically disadvantaged?
ethnicty
Race of student
tlimth
Math score of student
Texas Education Agency, http://www.tea.state.tx.us
Function creating a LaTeX representation of an object of class
xtable
.
## S3 method for class 'xtable' toLatex(object, ...)
## S3 method for class 'xtable' toLatex(object, ...)
object |
An object of class |
... |
Other arguments to |
This function creates a LaTeX representation of an object of class
"xtable"
. This is a method for the generic "toLatex"
in
the core R package "utils"
.
Charles Roosen [email protected] with contributions and suggestions from many others (see source code).
Convert an R object to an xtable
object, which can
then be printed as a LaTeX or HTML table.
xtable(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...)
xtable(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...)
x |
An R object of class found among |
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
|
label |
Character vector of length 1 containing the LaTeX label
or HTML anchor. Set to |
align |
Character vector of length equal to the number of columns
of the resulting table, indicating the alignment of the corresponding
columns. Also, |
digits |
Numeric vector of length equal to one (in which case it will be
replicated as necessary) or to the number of columns of the
resulting table or matrix of the same size as the resulting
table, indicating the number of digits to display in the
corresponding columns. Since the row names are printed in the first
column, the length of the vector |
display |
Character vector of length equal to the number of columns of the
resulting table, indicating the format for the corresponding columns.
Since the row names are printed in the first column, the length of
|
auto |
Logical, indicating whether to apply automatic format when no value
is passed to |
... |
Additional arguments. (Currently ignored.) |
This function extracts tabular information from x
and returns
an object of class "xtable"
. The nature of the table generated
depends on the class of x
. For example, aov
objects
produce ANOVA tables while data.frame
objects produce a table
of the entire data frame. One can optionally provide a caption
or label (called an anchor in HTML), as well
as formatting specifications. Default values for align
,
digits
, and display
are class dependent.
The available method functions for xtable
are given by
methods(xtable)
. Users can extend the list of available
classes by writing methods for the generic function xtable
.
These methods functions should have x
as their first argument,
with additional arguments to specify caption
, label
,
align
, digits
, and display
. Optionally, other
arguments may be passed to specify how the object x
should be
manipulated. All method functions should return an object whose class
is c("xtable","data.frame")
. The resulting object can
have attributes caption
and label
, but must have
attributes align
, digits
, and display
.
For most xtable
methods, an object of class "xtable"
which inherits the data.frame
class and contains several
additional attributes specifying the table formatting options.
David Dahl [email protected] with contributions and suggestions from many others (see source code).
print.xtable
, caption
,
label
, align
, digits
,
display
autoformat
, xalign
, xdigits
,
xdisplay
## Load example dataset data(tli) ## Demonstrate data.frame tli.table <- xtable(tli[1:20, ]) print(tli.table) print(tli.table, type = "html") xtable(mtcars) xtable(mtcars, auto = TRUE) ## Demonstrate data.frame with different digits in cells tli.table <- xtable(tli[1:20, ]) display(tli.table)[c(2,6)] <- "f" digits(tli.table) <- matrix(0:4, nrow = 20, ncol = ncol(tli)+1) print(tli.table) print(tli.table, type = "html") ## Demonstrate matrix design.matrix <- model.matrix(~ sex*grade, data = tli[1:20, ]) design.table <- xtable(design.matrix, auto = TRUE) print(design.table) print(design.table, type = "html") ## Demonstrate aov fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data = tli) fm1.table <- xtable(fm1) print(fm1.table) print(fm1.table, type = "html") ## Demonstrate lm fm2 <- lm(tlimth ~ sex*ethnicty, data = tli) fm2.table <- xtable(fm2) print(fm2.table) print(fm2.table, type = "html") print(xtable(anova(fm2))) print(xtable(anova(fm2)), type = "html") fm2b <- lm(tlimth ~ ethnicty, data = tli) print(xtable(anova(fm2b, fm2))) print(xtable(anova(fm2b, fm2)), type = "html") ## Demonstrate glm fm3 <- glm(disadvg ~ ethnicty*grade, data = tli, family = binomial()) fm3.table <- xtable(fm3) print(fm3.table) print(fm3.table, type = "html") print(xtable(anova(fm3))) print(xtable(anova(fm3)), type = "html") ## Demonstrate aov ## Taken from help(aov) in R 1.1.1 ## From Venables and Ripley (1997) p.210. N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0) P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0) K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0) yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,55.0, 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0) npk <- data.frame(block = gl(6,4), N = factor(N), P = factor(P), K = factor(K), yield = yield) npk.aov <- aov(yield ~ block + N*P*K, npk) op <- options(contrasts = c("contr.helmert", "contr.treatment")) npk.aovE <- aov(yield ~ N*P*K + Error(block), npk) options(op) summary(npk.aov) print(xtable(npk.aov)) print(xtable(anova(npk.aov))) print(xtable(summary(npk.aov))) summary(npk.aovE) print(xtable(npk.aovE), type = "html") print(xtable(summary(npk.aovE)), type = "html") ## Demonstrate lm ## Taken from help(lm) in R 1.1.1 ## Annette Dobson (1990) "An Introduction to Generalized Linear Models". ## Page 9: Plant Weight Data. ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2,10,20, labels = c("Ctl","Trt")) weight <- c(ctl, trt) lm.D9 <- lm(weight ~ group) print(xtable(lm.D9)) print(xtable(anova(lm.D9))) ## Demonstrate glm ## Taken from help(glm) in R 1.1.1 ## Annette Dobson (1990) "An Introduction to Generalized Linear Models". ## Page 93: Randomized Controlled Trial : counts <- c(18,17,15,20,10,20,25,13,12) outcome <- gl(3,1,9) treatment <- gl(3,3) d.AD <- data.frame(treatment, outcome, counts) glm.D93 <- glm(counts ~ outcome + treatment, family = poisson()) print(xtable(glm.D93, align = "r|llrc")) print(xtable(anova(glm.D93)), hline.after = c(1), size = "small") ## Demonstration of additional formatC() arguments. print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ",")) ## Demonstration of "short caption" support. fm1sc <- aov(tlimth ~ sex + ethnicty + grade, data = tli) fm1sc.table <- xtable(fm1sc, caption = c("ANOVA Model with Predictors Sex, Ethnicity, and Grade", "ANOVA: Sex, Ethnicity, Grade")) print(fm1sc.table) ## Demonstration of longtable support. ## Remember to insert \usepackage{longtable} on your LaTeX preamble x <- matrix(rnorm(1000), ncol = 10) x.big <- xtable(x, label = 'tabbig', caption = 'Example of longtable spanning several pages') print(x.big, tabular.environment = 'longtable', floating = FALSE) x <- x[1:30, ] x.small <- xtable(x, label = 'tabsmall', caption = 'regular table env') print(x.small) # default, no longtable ## Demonstration of sidewaystable support. ## Remember to insert \usepackage{rotating} on your LaTeX preamble print(x.small, floating.environment = 'sidewaystable') if(require(stats, quietly = TRUE)) { ## Demonstrate prcomp ## Taken from help(prcomp) in mva package of R 1.1.1 data(USArrests) pr1 <- prcomp(USArrests) print(xtable(pr1)) print(xtable(summary(pr1))) # ## Demonstrate princomp # ## Taken from help(princomp) in mva package of R 1.1.1 # pr2 <- princomp(USArrests) # print(xtable(pr2)) } ## Demonstrate include.rownames, include.colnames, ## only.contents and add.to.row arguments set.seed(2345) res <- matrix(sample(0:9, size = 6*9, replace = TRUE), ncol = 6, nrow = 9) xres <- xtable(res) digits(xres) <- rep(0, 7) addtorow <- list() addtorow$pos <- list() addtorow$pos[[1]] <- c(0, 2) addtorow$pos[[2]] <- 4 addtorow$command <- c('\vspace{2mm} \n', '\vspace{10mm} \n') print(xres, add.to.row = addtorow, include.rownames = FALSE, include.colnames = TRUE, only.contents = TRUE, hline.after = c(0, 0, 9, 9)) ## Demonstrate include.rownames, include.colnames, ## only.contents and add.to.row arguments in Rweave files ## Not run: \begin{small} \setlongtables \begin{longtable}{ <<results = tex, fig = FALSE>>= cat(paste(c('c', rep('cc', 34/2-1), 'c'), collapse = '@{\hspace{2pt}}')) @ } \hline \endhead \hline \endfoot <<results = tex, fig = FALSE>>= library(xtable) set.seed(2345) res <- matrix(sample(0:9, size = 34*90, replace = TRUE), ncol = 34, nrow = 90) xres <- xtable(res) digits(xres) <- rep(0, 35) addtorow <- list() addtorow$pos <- list() addtorow$pos[[1]] <- c(seq(4, 40, 5), seq(49, 85, 5)) addtorow$pos[[2]] <- 45 addtorow$command <- c('\vspace{2mm} \n', '\newpage \n') print(xres, add.to.row = addtorow, include.rownames = FALSE, include.colnames = FALSE, only.contents = TRUE, hline.after = NULL) @ \end{longtable} \end{small} ## End(Not run) ## Demonstrate sanitization mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4) rownames(mat) <- "$y_{t-1}$" colnames(mat) <- c("$R^2$", "$\\bar{R}^2$", "F-stat", "S.E.E", "DW") print(xtable(mat), type = "latex", sanitize.text.function = function(x){x}) ## Demonstrate booktabs print(tli.table) print(tli.table, hline.after = c(-1,0)) print(tli.table, hline.after = NULL) print(tli.table, add.to.row = list(pos = list(2), command = c("\vspace{2mm} \n"))) print(tli.table, booktabs = TRUE) print(tli.table, booktabs = TRUE, hline.after = c(-1,0)) print(tli.table, booktabs = TRUE, hline.after = NULL) print(tli.table, booktabs = TRUE, add.to.row = list(pos = list(2), command = c("\vspace{2mm} \n"))) print(tli.table, booktabs = TRUE, add.to.row = list(pos = list(2), command = c("youhou\n")), tabular.environment = "longtable")
## Load example dataset data(tli) ## Demonstrate data.frame tli.table <- xtable(tli[1:20, ]) print(tli.table) print(tli.table, type = "html") xtable(mtcars) xtable(mtcars, auto = TRUE) ## Demonstrate data.frame with different digits in cells tli.table <- xtable(tli[1:20, ]) display(tli.table)[c(2,6)] <- "f" digits(tli.table) <- matrix(0:4, nrow = 20, ncol = ncol(tli)+1) print(tli.table) print(tli.table, type = "html") ## Demonstrate matrix design.matrix <- model.matrix(~ sex*grade, data = tli[1:20, ]) design.table <- xtable(design.matrix, auto = TRUE) print(design.table) print(design.table, type = "html") ## Demonstrate aov fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data = tli) fm1.table <- xtable(fm1) print(fm1.table) print(fm1.table, type = "html") ## Demonstrate lm fm2 <- lm(tlimth ~ sex*ethnicty, data = tli) fm2.table <- xtable(fm2) print(fm2.table) print(fm2.table, type = "html") print(xtable(anova(fm2))) print(xtable(anova(fm2)), type = "html") fm2b <- lm(tlimth ~ ethnicty, data = tli) print(xtable(anova(fm2b, fm2))) print(xtable(anova(fm2b, fm2)), type = "html") ## Demonstrate glm fm3 <- glm(disadvg ~ ethnicty*grade, data = tli, family = binomial()) fm3.table <- xtable(fm3) print(fm3.table) print(fm3.table, type = "html") print(xtable(anova(fm3))) print(xtable(anova(fm3)), type = "html") ## Demonstrate aov ## Taken from help(aov) in R 1.1.1 ## From Venables and Ripley (1997) p.210. N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0) P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0) K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0) yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,55.0, 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0) npk <- data.frame(block = gl(6,4), N = factor(N), P = factor(P), K = factor(K), yield = yield) npk.aov <- aov(yield ~ block + N*P*K, npk) op <- options(contrasts = c("contr.helmert", "contr.treatment")) npk.aovE <- aov(yield ~ N*P*K + Error(block), npk) options(op) summary(npk.aov) print(xtable(npk.aov)) print(xtable(anova(npk.aov))) print(xtable(summary(npk.aov))) summary(npk.aovE) print(xtable(npk.aovE), type = "html") print(xtable(summary(npk.aovE)), type = "html") ## Demonstrate lm ## Taken from help(lm) in R 1.1.1 ## Annette Dobson (1990) "An Introduction to Generalized Linear Models". ## Page 9: Plant Weight Data. ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2,10,20, labels = c("Ctl","Trt")) weight <- c(ctl, trt) lm.D9 <- lm(weight ~ group) print(xtable(lm.D9)) print(xtable(anova(lm.D9))) ## Demonstrate glm ## Taken from help(glm) in R 1.1.1 ## Annette Dobson (1990) "An Introduction to Generalized Linear Models". ## Page 93: Randomized Controlled Trial : counts <- c(18,17,15,20,10,20,25,13,12) outcome <- gl(3,1,9) treatment <- gl(3,3) d.AD <- data.frame(treatment, outcome, counts) glm.D93 <- glm(counts ~ outcome + treatment, family = poisson()) print(xtable(glm.D93, align = "r|llrc")) print(xtable(anova(glm.D93)), hline.after = c(1), size = "small") ## Demonstration of additional formatC() arguments. print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ",")) ## Demonstration of "short caption" support. fm1sc <- aov(tlimth ~ sex + ethnicty + grade, data = tli) fm1sc.table <- xtable(fm1sc, caption = c("ANOVA Model with Predictors Sex, Ethnicity, and Grade", "ANOVA: Sex, Ethnicity, Grade")) print(fm1sc.table) ## Demonstration of longtable support. ## Remember to insert \usepackage{longtable} on your LaTeX preamble x <- matrix(rnorm(1000), ncol = 10) x.big <- xtable(x, label = 'tabbig', caption = 'Example of longtable spanning several pages') print(x.big, tabular.environment = 'longtable', floating = FALSE) x <- x[1:30, ] x.small <- xtable(x, label = 'tabsmall', caption = 'regular table env') print(x.small) # default, no longtable ## Demonstration of sidewaystable support. ## Remember to insert \usepackage{rotating} on your LaTeX preamble print(x.small, floating.environment = 'sidewaystable') if(require(stats, quietly = TRUE)) { ## Demonstrate prcomp ## Taken from help(prcomp) in mva package of R 1.1.1 data(USArrests) pr1 <- prcomp(USArrests) print(xtable(pr1)) print(xtable(summary(pr1))) # ## Demonstrate princomp # ## Taken from help(princomp) in mva package of R 1.1.1 # pr2 <- princomp(USArrests) # print(xtable(pr2)) } ## Demonstrate include.rownames, include.colnames, ## only.contents and add.to.row arguments set.seed(2345) res <- matrix(sample(0:9, size = 6*9, replace = TRUE), ncol = 6, nrow = 9) xres <- xtable(res) digits(xres) <- rep(0, 7) addtorow <- list() addtorow$pos <- list() addtorow$pos[[1]] <- c(0, 2) addtorow$pos[[2]] <- 4 addtorow$command <- c('\vspace{2mm} \n', '\vspace{10mm} \n') print(xres, add.to.row = addtorow, include.rownames = FALSE, include.colnames = TRUE, only.contents = TRUE, hline.after = c(0, 0, 9, 9)) ## Demonstrate include.rownames, include.colnames, ## only.contents and add.to.row arguments in Rweave files ## Not run: \begin{small} \setlongtables \begin{longtable}{ <<results = tex, fig = FALSE>>= cat(paste(c('c', rep('cc', 34/2-1), 'c'), collapse = '@{\hspace{2pt}}')) @ } \hline \endhead \hline \endfoot <<results = tex, fig = FALSE>>= library(xtable) set.seed(2345) res <- matrix(sample(0:9, size = 34*90, replace = TRUE), ncol = 34, nrow = 90) xres <- xtable(res) digits(xres) <- rep(0, 35) addtorow <- list() addtorow$pos <- list() addtorow$pos[[1]] <- c(seq(4, 40, 5), seq(49, 85, 5)) addtorow$pos[[2]] <- 45 addtorow$command <- c('\vspace{2mm} \n', '\newpage \n') print(xres, add.to.row = addtorow, include.rownames = FALSE, include.colnames = FALSE, only.contents = TRUE, hline.after = NULL) @ \end{longtable} \end{small} ## End(Not run) ## Demonstrate sanitization mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4) rownames(mat) <- "$y_{t-1}$" colnames(mat) <- c("$R^2$", "$\\bar{R}^2$", "F-stat", "S.E.E", "DW") print(xtable(mat), type = "latex", sanitize.text.function = function(x){x}) ## Demonstrate booktabs print(tli.table) print(tli.table, hline.after = c(-1,0)) print(tli.table, hline.after = NULL) print(tli.table, add.to.row = list(pos = list(2), command = c("\vspace{2mm} \n"))) print(tli.table, booktabs = TRUE) print(tli.table, booktabs = TRUE, hline.after = c(-1,0)) print(tli.table, booktabs = TRUE, hline.after = NULL) print(tli.table, booktabs = TRUE, add.to.row = list(pos = list(2), command = c("\vspace{2mm} \n"))) print(tli.table, booktabs = TRUE, add.to.row = list(pos = list(2), command = c("youhou\n")), tabular.environment = "longtable")
xtableFtable
creates an object which contains information about
a flat table which can be used by print.xtableFtable
to produce
a character string which when included in a document produces a nicely
formatted flat table.
xtableFtable(x, caption = NULL, label = NULL, align = NULL, digits = 0, display = NULL, quote = FALSE, method = c("non.compact", "row.compact", "col.compact", "compact"), lsep = " $\\vert$ ", ...) ## S3 method for class 'xtableFtable' print(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 = getOption("xtable.hline.after", 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", as.is), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.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()), ...)
xtableFtable(x, caption = NULL, label = NULL, align = NULL, digits = 0, display = NULL, quote = FALSE, method = c("non.compact", "row.compact", "col.compact", "compact"), lsep = " $\\vert$ ", ...) ## S3 method for class 'xtableFtable' print(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 = getOption("xtable.hline.after", 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", as.is), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.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()), ...)
x |
For |
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
|
label |
Character vector of length 1 containing the LaTeX label
or HTML anchor. Set to |
align |
Character vector of length equal to the number of columns
of the resulting table, indicating the alignment of the corresponding
columns. Also, |
digits |
Numeric vector of length equal to one (in which case it will be
replicated as necessary) or to the number of columns in the
resulting table. Since data in the table consists of
counts, the default is 0. If the value of |
display |
Character vector of length equal to the number of columns of the
resulting table, indicating the format for the corresponding columns.
These values are passed to the |
quote |
A character string giving the set of quoting characters
for |
method |
String specifying how the
|
lsep |
Only for |
type |
Type of table to produce. Possible values for |
file |
Name of file where the resulting code should be saved. If
|
append |
If |
floating |
If |
floating.environment |
If |
table.placement |
If |
caption.placement |
The caption will be placed at the bottom
of the table if |
caption.width |
The caption will be placed in a |
latex.environments |
If |
tabular.environment |
When |
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 |
hline.after |
When |
NA.string |
String to be used for missing values in table
entries.
Default value is |
only.contents |
If |
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 |
sanitize.text.function |
Since the table entries are counts no
sanitization is necessary. The default is |
sanitize.rownames.function |
Like the
|
sanitize.colnames.function |
Like the
|
math.style.negative |
In a LaTeX table, if |
math.style.exponents |
In a LaTeX table, if |
html.table.attributes |
In an HTML table, attributes associated
with the |
print.results |
If |
format.args |
List of arguments for the |
rotate.rownames |
If |
rotate.colnames |
If |
booktabs |
If |
scalebox |
If not |
width |
If not |
comment |
If |
timestamp |
Timestamp to include in LaTeX comment. Set this
to |
... |
Additional arguments. (Currently ignored.) |
xtableFtable
carries out some calculations to determine the
number of rows and columns of names and labels which will be in the
table when formatted as a flat table, which depends on the value of
method
. It uses the results of those calculations to set
sensible values for align
and display
if these have
not been supplied. It attaches attributes to the resulting object
which specify details of the function call which are needed when
printing the resulting object which is of class
c("xtableFtable", "ftable")
.
print.xtableFtable
uses the attributes attached to an object
of class c("xtableFtable", "ftable")
to create a suitable
character matrix object for subsequent printing. Formatting is
carried out by changing the class of the c("xtableFtable",
"ftable")
to "ftable"
then using the generic format
to invoke format.ftable
, from the stats package. The
matrix object produced is then printed via a call to
print.xtable
.
Note that at present there is no code for type = "html"
.
For xtableFtable
an object of class c("xtableFtable",
"ftable")
, with attributes
ftableCaption |
the value of the |
ftableLabel |
the value of the |
ftableAlign |
the value of the |
ftableDigits |
the value of the |
quote |
the value of the |
ftableDisplay |
the value of the |
method |
the value of the |
lsep |
the value of the |
nChars |
a vector of length 2 giving the number of character rows and the number of character columns |
For print.xtableFtable
a character string which will produce a
formatted table when included in a LaTeX document.
The functions xtableFtable
and 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 align
,
digits
or align
. First of all, alternative values have
not been tested. Secondly, it is most likely that to determine
appropriate values for these arguments, users will have to investigate
the code for xtableFtable
and/or print.xtableFtable
.
David Scott [email protected].
The TeX FAQ, Tables longer than a single page. https://texfaq.org/FAQ-longtab
xtable
, caption
, label
,
align
, digits
, display
,
formatC
data(mtcars) mtcars$cyl <- factor(mtcars$cyl, levels = c("4","6","8"), labels = c("four","six","eight")) 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 = "compact") print.xtableFtable(xftbl, booktabs = TRUE) xftbl <- xtableFtable(tbl, method = "row.compact") print.xtableFtable(xftbl, rotate.colnames = TRUE, rotate.rownames = TRUE)
data(mtcars) mtcars$cyl <- factor(mtcars$cyl, levels = c("4","6","8"), labels = c("four","six","eight")) 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 = "compact") print.xtableFtable(xftbl, booktabs = TRUE) xftbl <- xtableFtable(tbl, method = "row.compact") print.xtableFtable(xftbl, rotate.colnames = TRUE, rotate.rownames = TRUE)
xtableList
creates an object from a list of tables, which can
be used by print.xtableList
to produce a composite table
containing the information from the individual tables.
xtableList(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, ...) ## S3 method for class 'xtableList' print(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), 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), 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()), ...)
xtableList(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, ...) ## S3 method for class 'xtableList' print(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), 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), 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()), ...)
x |
For |
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
|
label |
Character vector of length 1 containing the LaTeX label
or HTML anchor. Set to |
align |
Character vector of length equal to the number of columns
of the resulting table, indicating the alignment of the corresponding
columns. Also, |
digits |
Either |
display |
Either |
type |
Type of table to produce. Possible values for |
file |
Name of file where the resulting code should be saved. If
|
append |
If |
floating |
If |
floating.environment |
If |
table.placement |
If |
caption.placement |
The caption will be placed at the bottom
of the table if |
caption.width |
The caption will be placed in a |
latex.environments |
If |
tabular.environment |
When |
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 |
hline.after |
When |
NA.string |
String to be used for missing values in table
entries.
Default value is |
include.rownames |
If |
include.colnames |
If |
colnames.format |
Either |
only.contents |
If |
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 |
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
|
sanitize.rownames.function |
Like the
|
sanitize.colnames.function |
Like the
|
sanitize.subheadings.function |
Like the
|
sanitize.message.function |
Like the
|
math.style.negative |
In a LaTeX table, if |
math.style.exponents |
In a LaTeX table, if |
html.table.attributes |
In an HTML table, attributes associated
with the |
print.results |
If |
format.args |
List of arguments for the |
rotate.rownames |
If |
rotate.colnames |
If |
booktabs |
If |
scalebox |
If not |
width |
If not |
comment |
If |
timestamp |
Timestamp to include in LaTeX comment. Set this
to |
... |
Additional arguments. (Currently ignored.) |
xtableList
produces an object suitable for printing using
print.xtableList
.
The elements of the list x
supplied to xtableList
must
all have the same structure. When these list items are submitted to
xtable
the resulting table must have the same number of columns
with the same column names and type of data.
The values supplied to arguments digits
and display
,
must be composed of elements as specified in those same arguments for
the function xtable
. See the help for
xtable
for details.
print.xtableList
produces tables in two different formats
depending on the value of col.names.format
. If
col.names.format = "single"
, the resulting table has only a
single heading row. If col.names.format = "multiple"
there is a
heading row for each of the subtables making up the complete table.
By default if col.names.format = "single"
, there are horizontal
lines above and below the heading row, and at the end of each
subtable. If col.names.format = "multiple"
, there are
horizontal lines above and below each appearance of the heading row,
and at the end of each subtable.
If "subheadings"
is not NULL
, the individual elements of
this vector (which can include newlines \n
) produce a heading
line or lines for the subtables. When col.names.format =
"multiple"
these subheadings appear above the heading rows.
If "message"
is not NULL
the vector produces a line or
lines at the end of the table.
Consult the vignette ‘The xtableList
Gallery’ to see
the behaviour of these functions.
Note that at present there is no code for type = "html"
.
xtableList
produces an object of class
"xtableList"
. An object of this class is a list of
"xtable"
objects with some additional attributes. Each element
of the list can have a "subheading"
attribute. The list can
also have a "message"
attribute.
print.xtableList
produces a character string containing LaTeX
markup which produces a composite table in a LaTeX document.
David Scott [email protected].
caption
, label
, align
,
digits
, display
data(mtcars) mtcars <- mtcars[, 1:6] mtcarsList <- split(mtcars, f = mtcars$cyl) attr(mtcarsList, "subheadings") <- paste0("Number of cylinders = ", names(mtcarsList)) attr(mtcarsList, "message") <- c("Line 1 of Message", "Line 2 of Message") xList <- xtableList(mtcarsList) print.xtableList(xList) print.xtableList(xList, colnames.format = "multiple")
data(mtcars) mtcars <- mtcars[, 1:6] mtcarsList <- split(mtcars, f = mtcars$cyl) attr(mtcarsList, "subheadings") <- paste0("Number of cylinders = ", names(mtcarsList)) attr(mtcarsList, "message") <- c("Line 1 of Message", "Line 2 of Message") xList <- xtableList(mtcarsList) print.xtableList(xList) print.xtableList(xList, colnames.format = "multiple")
Convert an array of numbers or mathematical expressions into an
xtableMatharray
object so it can be printed. A convenience
function to enable the printing of arrays in mathematical expressions
in LaTeX.
xtableMatharray(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...)
xtableMatharray(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...)
x |
A numeric or character matrix. |
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
|
label |
Character vector of length 1 containing the LaTeX
label. Set to |
align |
Character vector of length equal to the number of columns
of the resulting table, indicating the alignment of the corresponding
columns. Also, |
digits |
Numeric vector of length equal to one (in which case it
will be replicated as necessary) or to the number of columns of the
resulting table or matrix of the same size as the resulting
table, indicating the number of digits to display in the
corresponding columns. Since the row names are printed in the first
column, the length of the vector |
display |
Character vector of length equal to the number of columns of the
resulting table, indicating the format for the corresponding columns.
Since the row names are printed in the first column, the length of
|
auto |
Logical, indicating whether to apply automatic format when no value
is passed to |
... |
Additional arguments. (Currently ignored.) |
This function is only usable for production of LaTeX documents, not HTML.
Creates an object of class
c("xtableMatharray","xtable","data.frame")
, to ensure that it is
printed by the print method print.xtableMatharray
.
An object of class c("xtableMatharray","xtable","data.frame")
.
David Scott <[email protected]>
V <- matrix(c(1.140380e-03, 3.010497e-05, 7.334879e-05, 3.010497e-05, 3.320683e-04, -5.284854e-05, 7.334879e-05, -5.284854e-05, 3.520928e-04), nrow = 3) mth <- xtableMatharray(V) class(mth) str(mth) unclass(mth)
V <- matrix(c(1.140380e-03, 3.010497e-05, 7.334879e-05, 3.010497e-05, 3.320683e-04, -5.284854e-05, 7.334879e-05, -5.284854e-05, 3.520928e-04), nrow = 3) mth <- xtableMatharray(V) class(mth) str(mth) unclass(mth)