如何使用 Sweave 和 xtable 创建彩色表格?

机器算法验证 r 可重复研究
2022-01-26 22:04:04

我正在使用 Sweave 和xtable生成报告。

我想在桌子上添加一些颜色。但是我还没有找到任何方法来使用 xtable 生成彩色表格。

还有其他选择吗?

1个回答

尽管我没有使用 R 明确地尝试过这个(我通常直接使用 、 或 colortbl 包对 Latex 中的表格进行后处理\rowcolor\rowcolors我认为通过add.to.row使用print.xtable(). 它基本上期望两个组件(传递为list):(1)行号和(2)LATEX命令。请注意,命令添加在指定行的末尾。

它似乎工作,与colortbl包。所以,像这样

<<result=tex>>
library(xtable)
m <- matrix(sample(1:10,10), nr=2)
print(xtable(m), add.to.row=list(list(1),"\\rowcolor[gray]{.8} "))
@

给我

在此处输入图像描述

(这是一个自定义的 Beamer 模板,但这应该适用于标准文档。使用 Beamer,您可能希望table在加载包时添加该选项。)

更新:

按照@Conjugate 的建议,您也可以依靠Hmisc设施进行处理TEX输出,查看latex()函数的许多选项。这是一个使用示例:

library(Hmisc)
## print the second row in bold (including row label)
form.mat <- matrix(c(rep("", 5), rep("bfseries", 5)), nr=2, byrow=TRUE)
w1 <- latex(m, rownamesTexCmd=c("","bfseries"), cellTexCmds=form.mat, 
            numeric.dollar=FALSE, file='/tmp/out1.tex')
w1  # call latex on /tmp/out1.tex
## highlight the second row in gray (as above)
w2 <- latex(m, rownamesTexCmd=c("","rowcolor[gray]{.8}"), 
            numeric.dollar=FALSE, file='/tmp/out2.tex')
w2