在这种情况下如何禁用自动舍入?
> x <- c(2.222, 3.333, 6.6666)
> df <- data.frame(x)
> df
x
1 2.2220
2 3.3330
3 6.6666
> xtable(df)
结果
% latex table generated in R 2.11.1 by xtable 1.5-6 package
% Tue Oct 25 12:13:08 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rr}
\hline
& x \\
\hline
1 & 2.22 \\
2 & 3.33 \\
3 & 6.67 \\
\hline
\end{tabular}
\end{center}
\end{table}
我无法在docs of xtable中找到任何选项将其关闭。
答案 0 :(得分:11)
digits
怎么样?
xtable(df,digits=4)
% latex table generated in R 2.12.2 by xtable 1.5-6 package
% Tue Oct 25 11:39:25 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rr}
\hline
& x \\
\hline
1 & 2.2220 \\
2 & 3.3330 \\
3 & 6.6666 \\
\hline
\end{tabular}
\end{center}
\end{table}
答案 1 :(得分:0)
请参阅@James的答案以获得正确的答案(我甚至没有检查过,因为我认为@mmmasterluke实际上已经阅读了文档)。
作为替代方案,您可以使用包toLatex
中的memisc
:
library(memisc)
x <- c(2.222, 3.333, 6.6666)
df <- data.frame(x)
toLatex(df, digits=4)
给你
\begin{tabular}{D{.}{.}{4}}
\toprule
\multicolumn{1}{c}{x} \\
\midrule
2.2220 \\
3.3330 \\
6.6666 \\
\bottomrule
\end{tabular}
它还有许多其他选项可用于配置Latex输出。
答案 2 :(得分:0)
如果您已使用首选舍入格式化数据框,并且不想为每列重新键入数字,则一种解决方案是将所有内容都转换为文本。我刚刚定义了一个函数,然后我在其他地方使用xtable
:
myxtable <- function(x, ...) xtable(apply(x, 2, as.character), ...)
然后,只要您使用myxtable
的返回值,就可以使用xtable
的返回值,但格式完整。
答案 3 :(得分:0)
您可以通过将所有列转换为字符串来实现,但它可能会生成一些警告消息:
> xtable(df, display=rep("s",ncol(df)+1))
% latex table generated in R 3.3.3 by xtable 1.8-2 package
% Tue Oct 24 12:43:58 2017
\begin{table}[ht]
\centering
\begin{tabular}{rr}
\hline
& x \\
\hline
1 & 2.222 \\
2 & 3.333 \\
3 & 6.6666 \\
\hline
\end{tabular}
\end{table}
Warning message:
In formatC(x = c(2.222, 3.333, 6.6666), format = "s", digits = 2, :
trasformo l'argomento in "character" in format="s"