说我有以下数据框:
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()
可以很好地处理数据帧作为输入。将“粘贴”更改为更常见的内容(例如“和”或“长度”)不会产生错误。我可以对
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}
最佳答案
向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}
关于r - 我该如何使xtable与aggregate(…,FUN = paste)一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18087882/