gpt4 book ai didi

r - 在使用 xtable() 生成的表中将负数的颜色更改为红色?

转载 作者:行者123 更新时间:2023-12-03 13:54:02 25 4
gpt4 key购买 nike

我正在用 knitr 用 R 写报告。我正在使用 xtable() 在报告中生成表格。我的一张表包括负数和正数。我想将负数的颜色更改为红色。我怎样才能做到这一点?
显然,一个简单的解决方案是更改 xtable 生成的 latex 代码,但请注意,我有一个自动报告,数字可以随新数据集而改变,我不想手动设置颜色。

这是一个简单的代码:

\documentclass{article}
\begin{document}
<<simpleExamp, results=tex, echo=FALSE>>=
library(knitr)
library(xtable)
testMatrix <- matrix(c(sample(-10:10,10)), ncol = 2)
xtable(testMatrix)
@
\end{document}

如何使负数变为红色?
感谢您的帮助。

最佳答案

您可以使用 capture.output()捕获由(隐式)调用 print.xtable() 打印的行.然后申请gsub()到输出,使用一个模式和替换,用 \textcolor{red}{} 包围每个负数.最后,使用 cat()sep="\n"将修改后的行写入 *.tex文件。

\documentclass{article}
\begin{document}
<<simpleExamp, results="asis", echo=FALSE>>=
library(knitr)
library(xtable)
testMatrix <- matrix(c(sample(-10:10,10)), ncol = 2)
## I added the following three lines
xt <- capture.output(xtable(testMatrix))
xt_mod <- gsub("(\\s|^)(-\\d*)", "\\1\\\\textcolor{red}{\\2}", xt)
cat(xt_mod, sep="\n")
@
\end{document}

(另请注意,我将 results=tex 替换为 results="asis" knitr '更喜欢',并且会更快地处理。)

编辑:添加结果表的图像。 (以 SO 就绪的形式获取它需要对代码进行一些调整,这也包括在下面。)

enter image description here
\documentclass{standalone}
\renewenvironment{table}{}{}% Ignore `table` environment in standalone mode.
\begin{document}
<<simpleExamp, results="asis", echo=FALSE>>=
library(knitr)
library(xtable)
cat("\\Huge\n\n")
testMatrix <- matrix(c(sample(-10:10,10)), ncol = 2)
## I added the following three lines
xt <- capture.output(print.xtable(xtable(testMatrix), table.placement=NULL))
xt_mod <- gsub("(\\s|^)(-\\d*)", "\\1\\\\textcolor{red}{\\2}", xt)
cat(xt_mod, sep="\n")
@
\end{document}

关于r - 在使用 xtable() 生成的表中将负数的颜色更改为红色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148770/

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