latex - How to include multiple tables programmatically into a Sweave document using R -
i want have sweave document include variable number of tables in. thought example below work, doesn't. want loop on list foo , print each element it's own table.
% \documentclass[a4paper]{article} \usepackage[ot1]{fontenc} \usepackage{longtable} \usepackage{geometry} \usepackage{sweave} \geometry{left=1.25in, right=1.25in, top=1in, bottom=1in} \listfiles \begin{document} <<label=start, echo=false, include=false>>= startt<-proc.time()[3] library(rodbc) library(psych) library(xtable) library(plyr) library(ggplot2) options(width=80) #produce example data, here i'm creating dummy dataframes , putting them in list foo<-list() foo[[1]]<-data.frame(grp=c(rep("aa",10), rep("aa",10), rep("aa",10)), x1=rnorm(30), x2=rnorm(30,5,2)) foo[[2]]<-data.frame(grp=c(rep("bb",10), rep("bb",10), rep("bb",10)), x1=rnorm(30), x2=rnorm(30,5,2)) foo[[3]]<-data.frame(grp=c(rep("cc",12), rep("cc",18)), x1=rnorm(30), x2=rnorm(30,5,2)) foo[[4]]<-data.frame(grp=c(rep("dd",10), rep("dd",10), rep("dd",10)), x1=rnorm(30), x2=rnorm(30,5,2)) @ \title{docuemnt test putting variable number of tables sweave document} \author{"paul hurley"} \maketitle \section{text} document created on \today, \sexpr{print(version$version.string)} running on \sexpr{print(version$platform)} platform. took approx \input{time} sec process. <<label=test, echo=false, results=tex>>= cat("foo") @ test, <<label=table1test, echo=false, results=tex>>= print(xtable(foo[[1]])) @ \newpage \subsection{tables} <<label=tables, echo=false, results=tex>>= for(i in seq(foo)){ cat("\n") cat(paste("table_",i,sep="")) cat("\n") print(xtable(foo[[i]])) cat("\n") } #cat("<<label=endoftables>>= ") @ <<label=bye, include=false, echo=false>>= endt<-proc.time()[3] elapsedtime<-as.numeric(endt-startt) @ <<label=elapsed, include=false, echo=false>>= fileconn<-file("time.tex", "wt") writelines(as.character(elapsedtime), fileconn) close(fileconn) @ \end{document}
here, table1test chunk works expected, , produced table based on dataframe in foo[[1]], loop produces table(underscore)1....
this being caused underscore in statement:
cat(paste("table_",i,sep=""))
if change
cat(paste("table ",i,sep=""))
or
cat(paste("table\\textunderscore",i,sep=""))
it runs. did want numbers subscripts?
Comments
Post a Comment