Sweave, R chunks & fonctions latex

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Varin Thibault
Messages : 31
Enregistré le : 08 Nov 2006, 11:23

Sweave, R chunks & fonctions latex

Messagepar Varin Thibault » 04 Nov 2008, 16:21

Bonjour,
Je commence a utiliser Sweave pour generer des rapports dynamiques.
Dans un chunk j'utilise une boucle for et qui genere le code latex pour 3 tableaux que je veux afficher dans mon rapport. J'ai donc quelque chose du type :

<<results=tex,echo=FALSE>>=
for (i in 1:10) {
print(xtable(get(paste("tableau_a",i,sep="")))
print(xtable(get(paste("tableau_b",i,sep="")))
print(xtable(get(paste("tableau_c",i,sep="")))
}
@

Ceci marche tres bien mais evidemment mes tableaux sont affiches les uns a la suite des autres. Je souhaiterai que chaque serie tableau_a, serie tableau_b et serie tableau_c apparaissent dans un nouveau chapitre et sur une nouvelle page.

J ai bien trouve une fonction qui permet d'introduire la valeur d'une variable R dans du code latex (\Sexpr{print(variable)}) mais je n arrive pas a trouver de fonction qui permette l'inverse...
Je voudrai donc faire quelque chose du type :

<<results=tex,echo=FALSE>>=
for (i in 1:10) {
\newpage #
\chapter{paste("tableau_a",i,sep="")} #
print(xtable(get(paste("tableau_a",i,sep="")))
print(xtable(get(paste("tableau_b",i,sep="")))
print(xtable(get(paste("tableau_c",i,sep="")))
}
@
Ce qui ne marche evidemment pas...
Est ce que quelqu un sait comment faire?
Merci d'avance!!!
Varin Thibault

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Messagepar jean lobry » 04 Nov 2008, 16:58

Bonjour,

il suffit de faire des cat() pour générer le code LaTeX qui t'intéresse, en faisant attention de doubler les \\, par exemple :

Code : Tout sélectionner

<<results=tex,echo=FALSE>>=
for (i in 1:10) {
cat("\\newpage\n")
print(xtable(get(paste("tableau_a",i,sep="")))
print(xtable(get(paste("tableau_b",i,sep="")))
print(xtable(get(paste("tableau_c",i,sep="")))
}
@

Amicalement,

Jean

Varin Thibault
Messages : 31
Enregistré le : 08 Nov 2006, 11:23

Messagepar Varin Thibault » 04 Nov 2008, 17:18

Genial! Ca marche parfaitement!
Et pour les titres de sections, sous-sections... il suffit de faire :
cat(paste("\\subsection{",i,"}"))
Merci!!!
Thibault


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité