如何使用聚合(...,FUN =粘贴)使xtable工作?

时间:2013-08-06 18:33:18

标签: r latex aggregate xtable

说我有以下数据框:

df <- data.frame(sector = c(rep('a', 3), rep('b', 4)), id = 1:7)

我想创建一个汇总表,报告每个扇区的ID列表,所以我这样做:

table <- xtable(aggregate(id ~ sector, df, paste))

但是,当我尝试使用xtable()将上面的对象转换为LaTeX时,我收到以下错误:

> xtable(table)
Error in is.finite(x) : default method not implemented for type 'list'

这是由第二列引起的,因为class(table$id)确认它是一个列表。

应该注意xtable()处理数据帧作为输入。将“粘贴”更改为更常见的内容(如“sum”或“length”)不会产生错误。

我可以对table(或xtable)做什么,以便创建我想要的表格?所需的原始输出应如下所示:

\begin{table}[ht]
\centering
\begin{tabular}{rlr}
  \hline
 & sector & id \\ 
  \hline
1 & a &   1, 2, 3 \\ 
  2 & b &  4, 5, 6, 7\\ 
   \hline
\end{tabular}
\end{table}

1 个答案:

答案 0 :(得分:6)

paste添加'collapse'参数将成功:

> xtable(aggregate(id ~ sector, df, paste, collapse=","))
% latex table generated in R 3.0.1 by xtable 1.7-1 package
% Tue Aug  6 11:46:03 2013
\begin{table}[ht]
\centering
\begin{tabular}{rll}
  \hline
 & sector & id \\ 
  \hline
1 & a & 1,2,3 \\ 
  2 & b & 4,5,6,7 \\ 
   \hline
\end{tabular}
\end{table}