我正在使用 xtable 生成表格以放入 Latex 中,并且想知道是否有一种方法可以对单元格进行条件格式设置,以便所有重要的 p 值都为灰色?我在 TexShop 中使用 Knitr。这是使用 ggplot2 中的 diamonds 数据并运行 TukeyHSD 测试以从 carat 预测 cut 的示例。library(ggplot2)library(xtable)summary(data.aov <- aov(carat~cut, data = diamonds))data.hsd<-TukeyHSD(data.aov)data.hsd.result<-data.frame(data.hsd$cut)data.hsd.result然后我可以使用以下命令将 data.hsd.result 转换为 xtable 格式:xtable(data.hsd.result)在 Latex 中,输出如下所示: diff lwr upr p.adjGood-Fair -0.19695197 -0.23342631 -0.16047764 0.000000e+00Very Good-Fair -0.23975525 -0.27344709 -0.20606342 0.000000e+00Premium-Fair -0.15418175 -0.18762721 -0.12073628 0.000000e+00Ideal-Fair -0.34329965 -0.37610961 -0.31048970 0.000000e+00Very Good-Good -0.04280328 -0.06430194 -0.02130461 5.585171e-07Premium-Good 0.04277023 0.02165976 0.06388070 3.256208e-07Ideal-Good -0.14634768 -0.16643613 -0.12625923 0.000000e+00Premium-Very Good 0.08557350 0.06974902 0.10139799 0.000000e+00Ideal-Very Good -0.10354440 -0.11797729 -0.08911151 0.000000e+00Ideal-Premium -0.18911791 -0.20296592 -0.17526989 0.000000e+00是否可以让任何 p 值 最佳答案 你好试试这个:\documentclass{article}\usepackage{color}\begin{document}<<echo=FALSE, results='asis'>>=df = data.frame(V1 = LETTERS[1:6], V2 = runif(6, 0, 1))df$V3 = ifelse(df$V2 < 0.5, paste0("\\colorbox{red}{", df$V2, "}"), df$V2)library(xtable)print(xtable(df), sanitize.text.function = function(x) x)@\end{document} 编辑 如果您有多个条件,一种解决方案是使用包 dplyr 和函数 case_when :set.seed(123)df <- data.frame(V1 = LETTERS[1:6], V2 = runif(6, 0, 1))library("dplyr")df %>% mutate( V3 = case_when( V2 < 0.5 ~ paste0("\\colorbox{red}{", round(V2, 3), "}"), V2 >= 0.5 & V2 < 0.8 ~ paste0("\\colorbox{blue}{", round(V2, 3), "}"), TRUE ~ formatC(V2, digits = 3) ) )# V1 V2 V3# 1 A 0.2875775 \\colorbox{red}{0.288}# 2 B 0.7883051 \\colorbox{blue}{0.788}# 3 C 0.4089769 \\colorbox{red}{0.409}# 4 D 0.8830174 0.883# 5 E 0.9404673 0.94# 6 F 0.0455565 \\colorbox{red}{0.046}关于r - xtable 用于条件单元格格式化表格的重要 p 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24553963/ 10-13 02:58