Wal*_*cio 2 format r xtable knitr
说我有一个像这样的knitr块:
library(xtable)
<<>>=
x <- matrix(c(0, 1, 2, 0, 4, 5))
xtable(x)
@
Run Code Online (Sandbox Code Playgroud)
产生以下LaTeX代码(摘录):
\hline
1 & 0,00 \\
2 & 1,00 \\
3 & 2,00 \\
4 & 0,00 \\
5 & 4,00 \\
6 & 5,00 \\
\hline
Run Code Online (Sandbox Code Playgroud)
但是,我的实际表格较大(12 x 6)并且有很多零,这使得发现非零非常重要.我想遵循本地表格格式指南,建议使用连字符作为整数零(而不是由近似产生的零).换句话说,我希望我的xtable()输出看起来像这样:
\hline
1 & - \\
2 & 1,00 \\
3 & 2,00 \\
4 & - \\
5 & 4,00 \\
6 & 5,00 \\
\hline
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我已经研究过R options和knitr opts_chunk函数无济于事.
如果你没有(否则)在矩阵/表中缺少数据,那么你可以使用xtable格式化NA来获得所需的结果.只需将0更改为NA,然后使用NA.string选项print.xtable
tmp <- x
tmp[tmp==0] <- NA
print(xtable(tmp), NA.string = "-")
Run Code Online (Sandbox Code Playgroud)
这使
% 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}
Run Code Online (Sandbox Code Playgroud)
您甚至可以将其包装在一个函数中,以隔离0到NA的映射与任何其他分析,并清楚地表明这仅用于输出格式.
xtable0dash <- function(x, ...) {
x[x==0] <- NA
print(xtable(x, ...), NA.string = "-")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
579 次 |
| 最近记录: |