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

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -