2010-11-25 28 views
4

Comment mettez-vous sur une grande table de xtable l'en-tête du tableau sur chaque page ?, Alors, il est plus facile de lire le tableau de la table entre les pages.en-tête sur chaque page de la grande table de xtable?

J'utiliser les éléments suivants dans Sweave:

test.big<- xtable(test,label="table",caption='test') 
align(test.big) <- "|c|c|c|c|l|c|c|c|" 
print(test.big,tabular.environment='longtable',include.colnames = TRUE,floating=FALSE) 

Merci pour vos réponses

Répondre

4

Le longtable (LaTeX) package specification peut être trouvé à cette URL. La section de code dans les exemples dont la sortie apparaît sur les pages 2 et 3 est à l'article 8 et je l'ai reproduit peu ci-dessous:

\caption[]{(continued)}\\ 
\hline\hline 
\multicolumn{2}{@{*}[email protected]{*}}% 
{This part appears at the top of every other page}\\ 
\textbf{First}&\textbf{Second}\\ 
\hline\hline 
\endhead 

Quand ils disent sur « toute autre page », ils veulent dire toutes les pages d'autres que le premier, qui avait un en-tête différent. Si l'appel XTABLE ne fonctionne pas hors de la boîte sans modification, vous devez d'abord vérifier que vous avez le paquet longtable spécifié dans votre préambule LaTeX:

\usepackage{longtable} 
8

Je pense qu'une meilleure réponse à cette question est fournie ici : Column names on each page with xtable in Sweave

Et si vous voulez éditer votre tableau en R? La solution ci-dessus édite la sortie, donc vous n'aurez pas besoin d'ajouter ces lignes manuellement dans votre code longtable. Ainsi cela fonctionne mieux:

print(test.big, tabular.environment='longtable', include.colnames = TRUE, 
floating=FALSE, add.to.row = list(pos = list(0), command = "\\hline \\endhead ")) 

Notez que vous pouvez ajouter plusieurs arguments dans votre liste de add.to.row:

print(test.big, tabular.environment='longtable', include.colnames = TRUE, 
floating=FALSE, list(pos = list(seq(1,nrow(get(groups[i])), by = 2), 0), 
command = c("\\rowcolor[gray]{.95} ","\\hline \\endhead "))) 

Vous devez ajouter à votre fichier Sweave:

\usepackage{colortbl} 

Ceci produit un remplissage gris à chaque seconde ligne & pour chaque page.