\subsection{Matrix}\r
<<results='asis'>>=\r
design.matrix <- model.matrix(~ sex*grade, data = tli[1:10, ])\r
-xtable(design.matrix)\r
+xtable(design.matrix, digits = 0)\r
@\r
\r
\subsection{aov}\r
xtable(anova(fm3))\r
@\r
\r
-\subsection{More aov}\r
-<<results='asis'>>=\r
-## Venables and Ripley (1997, p. 210)\r
-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)\r
-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)\r
-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)\r
-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,\r
- 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0)\r
-npk <- data.frame(block = gl(6,4), N = factor(N), P = factor(P),\r
- K = factor(K), yield = yield)\r
-npk.aov <- aov(yield ~ block + N*P*K, npk)\r
-xtable(npk.aov)\r
-@\r
-\r
-\p\textbf{\itshape Anova table}\r
-<<results='asis'>>=\r
-xtable(anova(npk.aov))\r
-@\r
-\r
-\p\textbf{\itshape Summary table}\r
-<<results='asis'>>=\r
-xtable(summary(npk.aov))\r
-@\r
-\r
-\newpage\r
-\r
-\p\r
-<<results='asis'>>=\r
-## Alternative multistratum model\r
-op <- options(contrasts = c("contr.helmert", "contr.treatment"))\r
-npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)\r
-options(op)\r
-xtable(npk.aovE)\r
-@\r
-\r
-\p\r
-<<results='asis'>>=\r
-xtable(summary(npk.aovE))\r
-@\r
-\r
-\subsection{More lm}\r
-<<results='asis'>>=\r
-## Dobson (1990, p. 9) plant weight data\r
-ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)\r
-trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)\r
-group <- gl(2,10,20, labels = c("Ctl","Trt"))\r
-weight <- c(ctl, trt)\r
-lm.D9 <- lm(weight ~ group)\r
-xtable(lm.D9)\r
-@\r
-\r
-\p\r
-<<results='asis'>>=\r
-xtable(anova(lm.D9))\r
-@\r
-\r
-\newpage\r
-\r
-\subsection{More glm}\r
-<<results='asis'>>=\r
-## Dobson (1990, p. 93) randomized controlled trial\r
-counts <- c(18,17,15,20,10,20,25,13,12)\r
-outcome <- gl(3,1,9)\r
-treatment <- gl(3,3)\r
-d.AD <- data.frame(treatment, outcome, counts)\r
-glm.D93 <- glm(counts ~ outcome + treatment, family = poisson)\r
-xtable(glm.D93, align = "r|llrc")\r
-@\r
-\r
\subsection{prcomp}\r
<<results='asis'>>=\r
pr1 <- prcomp(USArrests)\r
temp.ts <- ts(cumsum(1 + round(rnorm(100), 0)),\r
start = c(1954, 7), frequency = 12)\r
temp.table <- xtable(temp.ts, digits = 0)\r
-caption(temp.table) <- "Time series example"\r
-print(temp.table, floating = TRUE)\r
+temp.table\r
@\r
\r
<<include=FALSE>>=\r
# }\r
@\r
\r
+\newpage\r
+\r
\section{Helper functions for formatting}\r
The functions \code{xalign}, \code{xdigits}, and \code{xdisplay} are useful for\r
formatting tables in a sensible way. Consider the output produced by the default\r
Sometimes you might want to have your own sanitization function.\r
\r
<<results='asis'>>=\r
-wanttex <- xtable(data.frame(label =\r
+wanttex <- xtable(data.frame(Column =\r
paste("Value_is $10^{-",1:3,"}$", sep = "")))\r
print(wanttex, sanitize.text.function =\r
function(str) gsub("_", "\\_", str, fixed = TRUE))\r
<<results='asis'>>=\r
mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4)\r
rownames(mat) <- "$y_{t-1}$"\r
-colnames(mat) <- c("$R^2$", "$\\bar{R}^2$", "F-stat", "S.E.E", "DW")\r
+colnames(mat) <- c("$R^2$", "$\\bar{x}$", "F-stat", "S.E.E", "DW")\r
mat <- xtable(mat)\r
print(mat, sanitize.text.function = function(x) {x})\r
@\r
\section{Format examples}\r
\subsection{Adding a centering environment}\r
<<results='asis'>>=\r
-print(xtable(lm.D9, caption = "\\tt latex.environments = NULL"),\r
- floating = TRUE, latex.environments = NULL)\r
-print(xtable(lm.D9, caption = "\\tt latex.environments = \"\""),\r
+print(xtable(money, caption = "\\tt latex.environments = \"\""),\r
floating = TRUE, latex.environments = "")\r
-print(xtable(lm.D9, caption = "\\tt latex.environments = \"center\""),\r
+print(xtable(money, caption = "\\tt latex.environments = \"center\""),\r
floating = TRUE, latex.environments = "center")\r
@\r
\r
+\newpage\r
+\r
\subsection{Column alignment}\r
<<results='asis'>>=\r
tli.table <- xtable(tli[1:10, ])\r
\r
\newpage\r
\r
-\subsection{Suppress row names}\r
+\subsection{Suppress row/column names}\r
+\subsubsection{Suppress row names}\r
<<results='asis'>>=\r
tli.table <- xtable(tli[1:10, ])\r
print(tli.table, include.rownames = FALSE)\r
\r
\newpage\r
\r
-\subsection{Suppress column names}\r
+\subsubsection{Suppress column names}\r
<<results='asis'>>=\r
print(tli.table, include.colnames = FALSE)\r
@\r
hline.after = c(0,nrow(tli.table)))\r
@\r
\r
-\subsection{Suppress row and column names}\r
+\subsubsection{Suppress row and column names}\r
<<results='asis'>>=\r
print(tli.table, include.colnames = FALSE, include.rownames = FALSE)\r
@\r
\r
\newpage\r
\r
-\subsection{Rotate row and column names}\r
+\subsection{Rotate row/column names}\r
The \code{rotate.rownames} and \code{rotate.colnames} arguments can be used to\r
rotate the row and/or column names. This requires \verb|\usepackage{rotating}|\r
in the \LaTeX\ preamble.\r
horizontal lines.\r
\r
<<results='asis'>>=\r
-print(xtable(anova(glm.D93)), hline.after = c(1))\r
+print(xtable(anova(fm3)), hline.after = c(1))\r
@\r
\r
\subsubsection{Line styles}\r
print(bktbs, booktabs = TRUE, hline.after = hlines)\r
@\r
\r
-\subsection{Table-level LaTeX}\r
+\subsection{Table level commands}\r
+<<results='asis'>>=\r
+print(xtable(anova(fm3)), size = "large")\r
+@\r
+\r
+\p\r
<<results='asis'>>=\r
-print(xtable(anova(glm.D93)), size = "small")\r
+print(xtable(anova(fm3)), size = "\\setlength{\\tabcolsep}{12pt}")\r
@\r
\r
\subsection{Long tables}\r
\r
<<results='asis'>>=\r
x <- x[1:30, ]\r
-x.small <- xtable(x, label = 'tabsmall', caption = 'A sideways table')\r
-print(x.small, floating = TRUE, floating.environment = 'sidewaystable')\r
+x.side <- xtable(x, caption = 'A sideways table')\r
+print(x.side, floating = TRUE, floating.environment = 'sidewaystable')\r
@\r
\clearpage\r
\r