gpt4 book ai didi

r - 在 xtables 中将零显示为连字符

转载 作者:行者123 更新时间:2023-12-05 01:27:40 26 4
gpt4 key购买 nike

假设我有一个像这样的knitr block :

library(xtable)

<<>>=
x <- matrix(c(0, 1, 2, 0, 4, 5))
xtable(x)
@

生成以下 LaTeX 代码(摘录):

\hline
1 & 0,00 \\
2 & 1,00 \\
3 & 2,00 \\
4 & 0,00 \\
5 & 4,00 \\
6 & 5,00 \\
\hline

但是,我的实际表更大 (12 x 6) 并且有很多零,这使得发现非零变得相当困难。我想遵循本地表格式指南,该指南建议使用连字符表示整数零(而不是近似产生的零)。换句话说,我希望我的 xtable() 输出如下所示:

\hline
1 & - \\
2 & 1,00 \\
3 & 2,00 \\
4 & - \\
5 & 4,00 \\
6 & 5,00 \\
\hline

我怎样才能实现这个目标?我研究了 R options 和 knit opts_chunk 函数,但无济于事。

最佳答案

如果矩阵/表中没有(否则)丢失数据,那么您可以使用 xtable 格式化 NA 的功能来获得所需的结果。只需将 0 更改为 NA,然后使用 NA.string 选项来 print.xtable

tmp <- x
tmp[tmp==0] <- NA
print(xtable(tmp), NA.string = "-")

这给出了

% latex table generated in R 3.0.1 by xtable 1.7-1 package
% Fri Sep 20 13:25:27 2013
\begin{table}[ht]
\centering
\begin{tabular}{rr}
\hline
& x \\
\hline
1 & - \\
2 & 1.00 \\
3 & 2.00 \\
4 & - \\
5 & 4.00 \\
6 & 5.00 \\
\hline
\end{tabular}
\end{table}

您甚至可以将其包装在一个函数中,以将 0 到 NA 的映射与任何其他分析隔离开来,并明确表示这仅用于输出格式化。

xtable0dash <- function(x, ...) {
x[x==0] <- NA
print(xtable(x, ...), NA.string = "-")
}

关于r - 在 xtables 中将零显示为连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com