我有一个看起来像这样的CSV文件:
RTT,From,Req,Bytes,TTL
202,10.0.0.10,1,64,64
191,10.0.0.10,2,64,64
...
我正在尝试使用summary()
生成一个LaTeX library(xtable)
,如下所示:
library(xtable)
pings <- read.csv("pings.csv")
s <- summary(pings$RTT)
xtable(t(s))
这会产生输出:
\begin{table}[ht]
\centering
\begin{tabular}{rrrrrrr}
\hline
& Min. & 1st Qu. & Median & Mean & 3rd Qu. & Max. \\
\hline
1 & 40.70 & 42.70 & 43.40 & 44.90 & 44.10 & 202.00 \\
\hline
\end{tabular}
\end{table}
这是几乎我想要的,除了包含空值和1
的第一列。
显然,我缺少一些关于R中数据类型和转换的重要基础知识。问题当然是t(s)
产生的:
Min. 1st Qu. Median Mean 3rd Qu. Max.
[1,] 40.7 42.7 43.4 44.9 44.1 202.0
其中[,1]
应解释xtable的输出。
任何人都可以向我指出我做错了吗?
如果我只是想在摘要上运行xtable,我会得到
> xtable(summary(pings$RTT))
Error in xtable.table(summary(pings$RTT)) :
xtable.table is not implemented for tables of > 2 dimensions
答案 0 :(得分:3)
xtable
是为表格开发的,特别是对于二维列联表,然后扩展到可能以这种方式出现的各种其他输出。它从未扩展到summaryDefault类的对象,这是s
对象所在的对象。当你将它强制转换为具有t
的矩阵时,它就变成了一个二维对象,然后它会强制转换为一个带有一个rowname的数据帧,&#34; 1&#34;默认打印。虽然我认为xtable的帮助页面在细节方面有点吝啬,但@gagolews给了你解决它的方法。查看代码很有帮助。虽然其中大部分是隐藏的:
> methods(xtable)
[1] xtable.anova* xtable.aov* xtable.aovlist*
[4] xtable.coxph* xtable.data.frame* xtable.glm*
[7] xtable.lm* xtable.matrix* xtable.prcomp*
[10] xtable.summary.aov* xtable.summary.aovlist* xtable.summary.glm*
[13] xtable.summary.lm* xtable.summary.prcomp* xtable.table*
[16] xtable.ts* xtable.zoo*
Non-visible functions are asterisked
> getAnywhere(xtable.matrix)
A single object matching ‘xtable.matrix’ was found
It was found in the following places
registered S3 method for xtable from namespace xtable
namespace:xtable
with value
function (x, caption = NULL, label = NULL, align = NULL, digits = NULL,
display = NULL, ...)
{
return(xtable.data.frame(data.frame(x, check.names = FALSE),
caption = caption, label = label, align = align, digits = digits,
display = display))
}
<environment: namespace:xtable>
答案 1 :(得分:2)
这由print.xtable()
处理:
> library(xtable)
> print.xtable(xtable(t(summary(runif(10)))), include.rownames=FALSE)
% latex table generated in R 3.0.2 by xtable 1.7-3 package
% Sat Apr 26 20:03:32 2014
\begin{table}[ht]
\centering
\begin{tabular}{rrrrrr}
\hline
Min. & 1st Qu. & Median & Mean & 3rd Qu. & Max. \\
\hline
0.03 & 0.18 & 0.48 & 0.41 & 0.61 & 0.74 \\
\hline
\end{tabular}
\end{table}
此处include.rownames=FALSE
禁用输出行名称。有关详细信息,请参阅?print.xtable
。