Supprimer les noms de ligne data.frame lors de l'utilisation de xtable

111

OK, j'avoue que celui-ci est un peu tendu (lire: "stupide"), et je suppose que c'est assez facile aussi. J'écris un rapport et je veux utiliser le xtablepackage pour la génération de table LaTeX (notez que le memiscpackage fait le travail, mais disons que je veux le faire uniquement avec xtable).

Utilisons un mtcarsensemble de données et un reshapepackage standard :

mdtf <- melt(mtcars, id.vars = c("am", "cyl"), measure.vars = c("mpg", "hp", "wt"))
( res <- cast(mdtf, am + cyl ~ variable, mean) )
  am cyl      mpg        hp       wt
1  0   4 22.90000  84.66667 2.935000
2  0   6 19.12500 115.25000 3.388750
3  0   8 15.05000 194.16667 4.104083
4  1   4 28.07500  81.87500 2.042250
5  1   6 20.56667 131.66667 2.755000
6  1   8 15.40000 299.50000 3.370000

Si j'emballe ceci à l'intérieur xtable, j'obtiendrai les noms de ligne (1..6):

xtable(res)
% latex table generated in R 2.13.0 by xtable 1.5-6 package
% Fri Mar 25 09:40:12 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrrr}
  \hline
 & am & cyl & mpg & hp & wt \\ 
  \hline
1 & 0.00 & 4.00 & 22.90 & 84.67 & 2.94 \\ 
  2 & 0.00 & 6.00 & 19.12 & 115.25 & 3.39 \\ 
  3 & 0.00 & 8.00 & 15.05 & 194.17 & 4.10 \\ 
  4 & 1.00 & 4.00 & 28.07 & 81.88 & 2.04 \\ 
  5 & 1.00 & 6.00 & 20.57 & 131.67 & 2.75 \\ 
  6 & 1.00 & 8.00 & 15.40 & 299.50 & 3.37 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}

Maintenant, y a-t-il une chance que je puisse éviter cela (en une seule ligne, si possible)?

aL3xa
la source

Réponses:

165

Utilisez include.rownames=FALSEdans la printméthode. Voir ?print.xtable:

R> print(xtable(res), include.rownames=FALSE)

% latex table generated in R 2.12.2 by xtable 1.5-6 package
% Fri Mar 25 10:06:08 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrr}
  \hline
am & cyl & mpg & hp & wt \\ 
  \hline
0.00 & 4.00 & 22.90 & 84.67 & 2.94 \\ 
  0.00 & 6.00 & 19.12 & 115.25 & 3.39 \\ 
  0.00 & 8.00 & 15.05 & 194.17 & 4.10 \\ 
  1.00 & 4.00 & 28.07 & 81.88 & 2.04 \\ 
  1.00 & 6.00 & 20.57 & 131.67 & 2.75 \\ 
  1.00 & 8.00 & 15.40 & 299.50 & 3.37 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}
rcs
la source
1
Yepp, j'ai oublié de lire la documentation de la méthode d'impression. Merci!
aL3xa
4
Pas une seule ligne, mais plutôt une seule dispute. :)
Roman Luštrik
Et ce défaut matrixde data.frameconversion est vraiment ennuyeux. C'est la seule solution (contournement) à conserver rownames: vpihur.com/blog/?p=131 Je dois donc modifier ma fonction: gist.github.com/887249 pour la définir rownamescomme première colonne. Et puis de supplier LaTeX de ne pas aligner les cellules tout seul ... putain!
aL3xa