Question

Je me demande s'il est possible de créer un xtable à partir de la commande str(x) pour avoir un aperçu des variables que vous utilisez.Ce serait une fonctionnalité intéressante pour présenter à quelqu'un le jeu de données, mais c'est ennuyeux de le créer vous-même.Donc, ce que j'ai essayé, c'est de créer un xtable comme ceci:

str(cars)
require(xtable)
xtable(str(cars))

le jeu de données cars provient de R. Malheureusement, xtable ne donne pas de Latexcode pour str().Est-il possible de déjouer R ici?Voici les principales commandes que xtable comprendra:

methods(xtable)

Des idées?

Était-ce utile?

La solution

Puisque xtable fournit le meilleur résultat lorsqu'il est utilisé avec des objets data.frames et matrix, je recommande quelque chose comme ceci:

library(xtable)
library(plyr)
dtf <- sapply(mtcars, each(min, max, mean, sd, var, median, IQR))
xtable(dtf)
% latex table generated in R 2.12.2 by xtable 1.5-6 package                                                                  
% Thu May  5 19:40:08 2011                                                                                                   
\begin{table}[ht]                                                                                                            
\begin{center}                                                                                                               
\begin{tabular}{rrrrrrrrrrrr}                                                                                                
  \hline                                                                                                                     
 & mpg & cyl & disp & hp & drat & wt & qsec & vs & am & gear & carb \\                                                       
  \hline                                                                                                                     
min & 10.40 & 4.00 & 71.10 & 52.00 & 2.76 & 1.51 & 14.50 & 0.00 & 0.00 & 3.00 & 1.00 \\                                      
  max & 33.90 & 8.00 & 472.00 & 335.00 & 4.93 & 5.42 & 22.90 & 1.00 & 1.00 & 5.00 & 8.00 \\                                  
  mean & 20.09 & 6.19 & 230.72 & 146.69 & 3.60 & 3.22 & 17.85 & 0.44 & 0.41 & 3.69 & 2.81 \\                                 
  sd & 6.03 & 1.79 & 123.94 & 68.56 & 0.53 & 0.98 & 1.79 & 0.50 & 0.50 & 0.74 & 1.62 \\                                      
  var & 36.32 & 3.19 & 15360.80 & 4700.87 & 0.29 & 0.96 & 3.19 & 0.25 & 0.25 & 0.54 & 2.61 \\                                
  median & 19.20 & 6.00 & 196.30 & 123.00 & 3.70 & 3.33 & 17.71 & 0.00 & 0.00 & 4.00 & 2.00 \\                               
  IQR & 7.38 & 4.00 & 205.18 & 83.50 & 0.84 & 1.03 & 2.01 & 1.00 & 1.00 & 1.00 & 2.00 \\                                     
   \hline                                                                                                                    
\end{tabular}                                                                                                                
\end{center}                                                                                                                 
\end{table} 

Désolé pour la longue sortie.Vous pouvez récupérer le PDF ici .each est une fonction très polyvalente, car vous pouvez définir un résumé personnalisé assez facilement.En outre, str renvoie la sortie à stdout, vous ne pouvez donc pas récupérer le résumé pour des variables spécifiques.Dans ce cas, sapply simplifiera le résultat, produisant matrix à la place data.frame.Mais ce n'est pas si problématique, non?

Autres conseils

Un autre paquet à examiner est reporttools.Voici un court morceau de code pour illustrer son utilisation sur l'ensemble de données tips du package reshape.Les deux instructions récapitulatives produisent du code latex qui peut être copié dans un document ou utilisé pour le tissage.

library(reporttools)
data(tips, package = 'reshape')

# summarize numeric variables
tableContinuous(tips[,sapply(tips, is.numeric)])

# summarize non-numeric variables
tableNominal(tips[,!sapply(tips, is.numeric)])

MODIFIER.Si vous DEVEZ vraiment utiliser str, alors voici une façon de procéder

str_cars = capture.output(str(cars))
xtable(data.frame(str_cars))

SORTIE DE REPORTTOOLS: entrez la description de l'image ici  entrez la description de l'image ici

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top