Hi Silvano I am not sure exactly what you want as I am not sure of the structure and format going into xtable but the structure after you have formed the table is apparently the same structure.
This is what I suggested before (modified) for(j in 1:25){ yourtable <- ... xx <- xtable(yourtable) caption(xx) <- paste("Table", j) print(xx) if(j < 25) cat("\n\n") } Pre xtable If you have different colums to tabulate I suggest you use a formula or bquote via a list to vary the columns in a loop and these are the variables to be tabulated. You can then use this for your column headers in xtable /latex. durin/Post xtable If single line header for table and formatting not needed to be changed everything OK otherwise inside chunk <<head, echo=FALSE, results=tex>>= for(j in 1:25){ yourtable <- ... hdx = c("\\begin{table}[h]\n", "\\caption{\\prevt{} and their equivalent \\dcode{}}%\n", "\\label{tab:", j "}%\n", "\\begin{tabular}{l|rrrrr}\n") # adjust to suit cat(hdx) # header from col names or otherwise out <- names(yourtable) out <- c("", paste("\\multicolumn{1}{c}{", out, rep(c("} & %\n", "} \\\\"), c(length(out)-1, 1)), sep = ""), "\n" ) cat(out, sep = "") # xtable xx <- xtable(yourtable) xnd = c(\\end{tabular}\n", "\\end{table}\n") cat(xnd) if(j < 25) cat("\n\n") } @ %% end You can add booktabs functions within tabular by cat if needed If you have things that need to be changed they can be accessed by a vector/list If you have variable numbers of decimal points see an colour is black http://tex.stackexchange.com/questions/96982/coloring-text-in-a-dcolumn-alig ned-cell-of-a-table Henrik Bengtsson has a package to do this sort of thing but he discontinued it for ver 3 or 2.15 ca Regards Duncan -----Original Message----- From: silv...@uel.br [mailto:silv...@uel.br] Sent: Friday, 10 January 2014 04:48 To: Duncan Mackay Subject: Re: [R] Function inside Sweave Dear Duncan, I want relatioship two variables: DISCIPLINA and Questions. I have about 100 different disciplines (in same column) and 25 questions (25 differents columns). Head is: ALUNO DISCIPLINA FIELD1 DATA SERIE TURMA Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 PROFESSOR Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 Q22 Q23 Q24 Q25 Something like this: DISCIPLINA: "6PIV019" "6VET017" "6BIQ014" "6ZOT058" "6ZOT060" ... "6PIV018" Questions: Q1, Q2, Q3, ... Q25 I get what I want (form a one Question) with this commands: tab1 = table(DISCIPLINA, Q1) tab1.prop = round(100*prop.table(tab1, 1), 2) tab1.txt = xtable(tab1.prop, align="l|rrrrr", label='Q1', caption=c("Apresentação da proposta de programa a ser desenvolvida na disciplina", "Q1")) print(tab1.txt, format.args=list(big.mark = ".", decimal.mark = ","), caption.placement='top', table.placement='H') But, I need 25 commands like this, because I have 25 questions. I would like program a function to make this one time only. So, I try this general function: DISCIPLINA <- rep(c("A", "B", "C", "D", "E"), 5) for (i in 1:25){ aux <- paste("Q", i, sep="") assign(aux, sample(rep(seq(1:5),5))) } cria.tabela <- function(Questao){ Questao1 <- get(Questao) tab1 <- table(DISCIPLINA, Questao1) tab1.prop = round(100*prop.table(tab1, 1), 2) tab1.txt = xtable(tab1.prop, align="l|rrrrr", label=Questao, caption=paste(Questao)) print(tab1.txt, format.args=list(big.mark = ".", decimal.mark = ","), caption.placement='top', table.placement='H') } geral <- function(){ for (i in 1:25){ x<-paste("Q", i, sep="") cria.tabela(x) } } geral() but I need change the created variable DISCIPLINA by DISCIPLINA in my dataset and I don't get this. If you want, I send you my dataset. Thanks a lot. Silvano. -----Mensagem Original----- From: Duncan Mackay Sent: Thursday, January 09, 2014 1:12 AM To: 'Silvano Cesar da Costa' Cc: R Subject: RE: [R] Function inside Sweave Hi Silvano I cannot use the data and function as the data is not available to me for the xtable part using data from xtable try as an example to see if it fits your needs data(tli) head(tli) for(j in 1:5){ xx <- xtable(tli[1:6,]); caption(xx) <- paste("Table", j); print(xx); if(j < 5) cat("\n\n")} You can amend the xtable part to suit -- the cat command gives some spacing Regards Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mac...@northnet.com.au -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of Silvano Cesar da Costa Sent: Thursday, 9 January 2014 04:24 To: r-help@r-project.org Subject: [R] Function inside Sweave Hi, I have a data set involving 25 Questions (Q1, Q2, ... , Q25), 100 Disciplina and 5 series. The variables are: ALUNO DISCIPLINA SERIE TURMA Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 ... Q25 I want to create tables associating each of the 25 questions to the Disciplina. Something like: tab1 = table(DISCIPLINA, Q1) tab1.prop = round(100*prop.table(tab1, 1), 2) tab1.txt = xtable(tab1.prop, align="l|rrrrr", label='Q1', caption=c("Apresentação da proposta de programa a ser desenvolvida na disciplina", "Q1")) print(tab1.txt, format.args=list(big.mark = ".", decimal.mark = ","), caption.placement='top', table.placement='H') With the help of a friend, was created the following function: require(xtable) DISCIPLINA <- rep(c("A", "B", "C", "D", "E"), 5) for (i in 1:25){ aux <- paste("Q", i, sep="") assign(aux, sample(rep(seq(1:5),5))) } cria.tabela <- function(Questao){ Questao1 <- get(Questao) tab1 <- table(DISCIPLINA, Questao1) tab1.prop = round(100*prop.table(tab1, 1), 2) tab1.txt = xtable(tab1.prop, align="l|rrrrr", label=Questao, caption=paste(Questao)) print(tab1.txt, format.args=list(big.mark = ".", decimal.mark = ","), caption.placement='top', table.placement='H') } geral <- function(){ for (i in 1:25){ x<-paste("Q", i, sep="") cria.tabela(x) } } geral() I need to change the variable DISCIPLINA created in the function by the variable DISCIPLINA in my dataset, but not working. Reading data was taken with: require(foreign) require(xtable) dados = read.epiinfo('C:/Colegiado de Veterinária/Dados/A2013/A2013.rec') head(dados) tail(dados) str(dados) attach(dados) serie_1 = subset(dados, SERIE=='1') head(serie_1) tail(serie_1) attach(serie_1) How can I do this? Thanks a lot, --------------------------------------------- Silvano Cesar da Costa Universidade Estadual de Londrina Centro de Ciências Exatas Departamento de Estatística Fone: (43) 3371-4346 ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. --- Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus está ativa. http://www.avast.com ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.