I'm wondering if it's possible to create a xtable
from the command str(x)
to get an overview from the variables you use. This would be a nice feature to introduce someone to the dataset, but it's annoying to create it by yourself. So whta I tried is to make a xtable
like this:
str(cars)
require(xtable)
xtable(str(cars))
the cars dataset is given from R. Unfortunately xtable
doesn't give a Latexcode for str()
. Is it possible outsmart R here? Here are the main commands that xtable
will understand:
methods(xtable)
Any ideas?
Since xtable
provides best result when used with data.frames
and matrix
objects, I'd recommend something like this:
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}
Sorry for lengthy output. You can grab PDF here. each
is a very versatile function, since you can define custom summary quite easy. Besides, str
returns output to stdout, so you can't retrieve summary for specific variables. In this case, sapply
will simplify the result, yielding matrix
instead data.frame
. But that's not so problematic, right?