## ----include=FALSE------------------------------------------------------- library(knitr) opts_chunk$set(fig.path='figdir/fig', debug=TRUE, echo=TRUE) set.seed(1234) ## ----results='asis'------------------------------------------------------ library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") ## ----results='asis'------------------------------------------------------ data(tli) xtable(tli[1:10, ]) ## ----results='asis'------------------------------------------------------ design.matrix <- model.matrix(~ sex*grade, data = tli[1:10, ]) xtable(design.matrix, digits = 0) ## ----results='asis'------------------------------------------------------ fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data = tli) xtable(fm1) ## ----results='asis'------------------------------------------------------ fm2 <- lm(tlimth ~ sex*ethnicty, data = tli) xtable(fm2) ## ----results='asis'------------------------------------------------------ xtable(anova(fm2)) ## ----results='asis'------------------------------------------------------ fm2b <- lm(tlimth ~ ethnicty, data = tli) xtable(anova(fm2b, fm2)) ## ----aovlist------------------------------------------------------------- Block <- gl(8, 4) A <- factor(c(0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1)) B <- factor(c(0,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1, 0,0,1,1,0,0,1,1,0,0,1,1)) C <- factor(c(0,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1, 1,0,1,0,0,0,1,1,1,1,0,0)) Yield <- c(101, 373, 398, 291, 312, 106, 265, 450, 106, 306, 324, 449, 272, 89, 407, 338, 87, 324, 279, 471, 323, 128, 423, 334, 131, 103, 445, 437, 324, 361, 302, 272) aovdat <- data.frame(Block, A, B, C, Yield) old <- getOption("contrasts") options(contrasts = c("contr.helmert", "contr.poly")) (fit <- aov(Yield ~ A*B*C + Error(Block), data = aovdat)) class(fit) summary(fit) options(contrasts = old) ## ----xtableaovlist, results='asis'--------------------------------------- xtable(fit) ## ----results='asis'------------------------------------------------------ fm3 <- glm(disadvg ~ ethnicty*grade, data = tli, family = binomial) xtable(fm3) ## ----results='asis'------------------------------------------------------ xtable(anova(fm3)) ## ----results='asis'------------------------------------------------------ pr1 <- prcomp(USArrests) xtable(pr1) ## ----results='asis'------------------------------------------------------ xtable(summary(pr1)) ## ----include=FALSE------------------------------------------------------- # pr2 <- princomp(USArrests) # xtable(pr2) ## ----results='asis'------------------------------------------------------ temp.ts <- ts(cumsum(1 + round(rnorm(100), 0)), start = c(1954, 7), frequency = 12) temp.table <- xtable(temp.ts, digits = 0) temp.table ## ----ftable-------------------------------------------------------------- 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")) tbl ## ----ftablecheck--------------------------------------------------------- xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) ## ----ftable1, results = 'asis'------------------------------------------- xftbl <- xtableFtable(tbl) print.xtableFtable(xftbl) ## ----ftable2, results = 'asis'------------------------------------------- xftbl <- xtableFtable(tbl, method = "col.compact") print.xtableFtable(xftbl, rotate.rownames = TRUE) ## ----ftable3, results = 'asis'------------------------------------------- xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) ## ----ftable4, results = 'asis'------------------------------------------- italic <- function(x){ paste0('{\\emph{', x, '}}') } mtcars$cyl <- factor(mtcars$cyl, levels = c("four","six","eight"), labels = c("four",italic("six"),"eight")) large <- function(x){ paste0('{\\Large ', x, '}') } bold <- function(x){ paste0('{\\bfseries ', x, '}') } 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") print.xtableFtable(xftbl, sanitize.rownames.function = large, sanitize.colnames.function = bold, rotate.colnames = TRUE, rotate.rownames = TRUE) ## ----include=FALSE------------------------------------------------------- # ## Demonstrate saving to file # for(i in c("latex", "html")) { # outFileName <- paste("xtable.", ifelse(i=="latex", "tex", i), sep = "") # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = NULL) # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = "") # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = "center") # print(xtable(anova(glm.D93, test = "Chisq")), # type = i, file = outFileName, # append = TRUE) # print(xtable(anova(glm.D93)), hline.after = c(1), # size = "small", type = i, # file = outFileName, append = TRUE) # # print(xtable(pr2), type = i, file = outFileName, append = TRUE) # } ## ----results='asis'------------------------------------------------------ data(mtcars) dat <- mtcars[1:3, 1:6] x <- xtable(dat) x ## ----results='asis'------------------------------------------------------ align(x) <- xalign(x) digits(x) <- xdigits(x) display(x) <- xdisplay(x) x ## ----results='asis'------------------------------------------------------ xtable(dat, auto = TRUE) ## ----results='asis'------------------------------------------------------ x <- xtable(dat) autoformat(x) ## ----results='asis'------------------------------------------------------ print(xtable(data.frame(text = c("foo","bar"), googols = c(10e10,50e10), small = c(8e-24,7e-5), row.names = c("A","B")), display = c("s","s","g","g")), math.style.exponents = TRUE) ## ----results='asis'------------------------------------------------------ insane <- data.frame(Name = c("Ampersand","Greater than","Less than", "Underscore","Per cent","Dollar", "Backslash","Hash","Caret","Tilde", "Left brace","Right brace"), Character = I(c("&",">","<","_","%","$", "\\","#","^","~","{","}"))) colnames(insane)[2] <- paste(insane[, 2], collapse = "") xtable(insane) ## ----results='asis'------------------------------------------------------ wanttex <- xtable(data.frame(Column = paste("Value_is $10^{-",1:3,"}$", sep = ""))) print(wanttex, sanitize.text.function = function(str) gsub("_", "\\_", str, fixed = TRUE)) ## ----sanitize3----------------------------------------------------------- dat <- mtcars[1:3, 1:6] large <- function(x){ paste0('{\\Large{\\bfseries ', x, '}}') } italic <- function(x){ paste0('{\\emph{ ', x, '}}') } ## ----sanitize4, results = 'asis'----------------------------------------- print(xtable(dat), sanitize.rownames.function = italic, sanitize.colnames.function = large, booktabs = TRUE) ## ----results='asis'------------------------------------------------------ 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{x}$", "F-stat", "S.E.E", "DW") mat <- xtable(mat) print(mat, sanitize.text.function = function(x) {x}) ## ----results='asis'------------------------------------------------------ money <- matrix(c("$1,000","$900","$100"), ncol = 3, dimnames = list("$\\alpha$", c("Income (US$)","Expenses (US$)", "Profit (US$)"))) print(xtable(money), sanitize.rownames.function = function(x) {x}) ## ----results='asis'------------------------------------------------------ print(xtable(anova(fm3), caption = "\\tt latex.environments = \"\""), floating = TRUE, latex.environments = "") print(xtable(anova(fm3), caption = "\\tt latex.environments = \"center\""), floating = TRUE, latex.environments = "center") ## ----results='asis'------------------------------------------------------ tli.table <- xtable(tli[1:10, ]) align(tli.table) <- rep("r", 6) tli.table ## ----results='asis'------------------------------------------------------ align(tli.table) <- "|rrl|l|lr|" tli.table ## ----results='asis'------------------------------------------------------ align(tli.table) <- "|rr|lp{3cm}l|r|" tli.table ## ----results='asis'------------------------------------------------------ display(tli.table)[c(2,6)] <- "f" digits(tli.table) <- 3 tli.table ## ----results='asis'------------------------------------------------------ digits(tli.table) <- 1:(ncol(tli)+1) tli.table ## ----results='asis'------------------------------------------------------ digits(tli.table) <- matrix(0:4, nrow = 10, ncol = ncol(tli)+1) tli.table ## ----results='asis'------------------------------------------------------ tli.table <- xtable(tli[1:10, ]) print(tli.table, include.rownames = FALSE) ## ----results='asis'------------------------------------------------------ align(tli.table) <- "|r|r|lp{3cm}l|r|" print(tli.table, include.rownames = FALSE) ## ------------------------------------------------------------------------ align(tli.table) <- "|rr|lp{3cm}l|r|" ## ----results='asis'------------------------------------------------------ print(tli.table, include.colnames = FALSE) ## ----results='asis'------------------------------------------------------ print(tli.table, include.colnames = FALSE, hline.after = c(0,nrow(tli.table))) ## ----results='asis'------------------------------------------------------ print(tli.table, include.colnames = FALSE, include.rownames = FALSE) ## ----results='asis'------------------------------------------------------ print(tli.table, rotate.rownames = TRUE, rotate.colnames = TRUE) ## ----results='asis'------------------------------------------------------ print(xtable(anova(fm3)), hline.after = c(1)) ## ----results='asis'------------------------------------------------------ tli.table <- xtable(tli[1:10, ]) print(tli.table, include.rownames = FALSE, booktabs = TRUE) ## ----results='asis'------------------------------------------------------ bktbs <- xtable(matrix(1:10, ncol = 2)) hlines <- c(-1, 0, 1, nrow(bktbs)) print(bktbs, booktabs = TRUE, hline.after = hlines) ## ----results='asis'------------------------------------------------------ print(xtable(anova(fm3)), size = "large") ## ----results='asis'------------------------------------------------------ print(xtable(anova(fm3)), size = "\\setlength{\\tabcolsep}{12pt}") ## ----results='asis'------------------------------------------------------ x <- matrix(rnorm(1000), ncol = 10) x.big <- xtable(x, caption = "A \\code{longtable} spanning several pages") print(x.big, hline.after=c(-1, 0), tabular.environment = "longtable") ## ----results='asis'------------------------------------------------------ add.to.row <- list(pos = list(0), command = NULL) command <- paste0("\\hline\n\\endhead\n", "\\hline\n", "\\multicolumn{", dim(x)[2] + 1, "}{l}", "{\\footnotesize Continued on next page}\n", "\\endfoot\n", "\\endlastfoot\n") add.to.row$command <- command print(x.big, hline.after=c(-1), add.to.row = add.to.row, tabular.environment = "longtable") ## ------------------------------------------------------------------------ Grade3 <- c("A","B","B","A","B","C","C","D","A","B", "C","C","C","D","B","B","D","C","C","D") Grade6 <- c("A","A","A","B","B","B","B","B","C","C", "A","C","C","C","D","D","D","D","D","D") Cohort <- table(Grade3, Grade6) Cohort ## ----results='asis'------------------------------------------------------ xtable(Cohort) ## ----results='asis'------------------------------------------------------ addtorow <- list() addtorow$pos <- list(0, 0) addtorow$command <- c("& \\multicolumn{4}{c}{Grade 6} \\\\\n", "Grade 3 & A & B & C & D \\\\\n") print(xtable(Cohort), add.to.row = addtorow, include.colnames = FALSE) ## ----results='asis'------------------------------------------------------ x <- x[1:30, ] x.side <- xtable(x, caption = "A sideways table") print(x.side, floating = TRUE, floating.environment = "sidewaystable") ## ----results='asis'------------------------------------------------------ x <- x[1:20, ] x.rescale <- xtable(x) print(x.rescale, scalebox = 0.7) ## ----results='asis'------------------------------------------------------ df <- data.frame(name = c("A","B"), right = c(1.4, 34.6), left = c(1.4, 34.6), text = c("txt1","txt2")) print(xtable(df, align = c("l", "|c", "|R{3cm}", "|L{3cm}", "| p{3cm}|")), floating = FALSE, include.rownames = FALSE) ## ----results='asis'------------------------------------------------------ df.width <- data.frame(One = c("item 1", "A"), Two = c("item 2", "B"), Three = c("item 3", "C"), Four = c("item 4", "D")) x.width <- xtable(df.width) align(x.width) <- "|l|X|l|l|l|" print(x.width, tabular.environment = "tabularx", width = "\\textwidth") ## ------------------------------------------------------------------------ x.out <- print(tli.table, print.results = FALSE) ## ------------------------------------------------------------------------ x.ltx <- toLatex(tli.table) class(x.ltx) x.ltx ## ----results='asis'------------------------------------------------------ toLatex(sessionInfo())