A slightly more direct approach (though not much different conceptually than what you've already done) might be to use do.call(data.frame, ...)
. The following works for me.
xtable(do.call(data.frame, c(agv, check.names = FALSE)))
For me, that returns:
> xtable(do.call(data.frame, c(agv, check.names = FALSE)))
% latex table generated in R 3.0.0 by xtable 1.7-1 package
% Thu Apr 25 11:10:26 2013
\begin{table}[ht]
\centering
\begin{tabular}{rlrrrrr}
\hline
& f & v.0\% & v.25\% & v.50\% & v.75\% & v.100\% \\
\hline
1 & a & 0.06 & 0.27 & 0.38 & 0.64 & 0.94 \\
2 & b & 0.20 & 0.38 & 0.52 & 0.70 & 0.87 \\
3 & c & 0.01 & 0.22 & 0.60 & 0.87 & 0.99 \\
\hline
\end{tabular}
\end{table}
xtable
also works with data.table
s, so you can also do something like the following:
library(data.table)
DT <- data.table(tm, key = "f")
xtable(DT[, as.list(quantile(v)), by = key(DT)])
Here, DT[, as.list(quantile(v)), by = key(DT)]
will give you the same results as your "agv" object.