r - xtable 用于条件单元格格式化表格的重要 p 值

我正在使用 xtable 生成要放入 Latex 的表格,并且想知道是否有办法对单元格进行条件格式设置,以便所有重要的 p 值都显示为灰色?我在 TexShop 中使用 Knitr。

这是一个使用 ggplot2 中的 diamonds 数据并运行 TukeyHSD 测试以从 cut 预测 carat 的示例。

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.adj
Good-Fair         -0.19695197 -0.23342631 -0.16047764 0.000000e+00
Very Good-Fair    -0.23975525 -0.27344709 -0.20606342 0.000000e+00
Premium-Fair      -0.15418175 -0.18762721 -0.12073628 0.000000e+00
Ideal-Fair        -0.34329965 -0.37610961 -0.31048970 0.000000e+00
Very Good-Good    -0.04280328 -0.06430194 -0.02130461 5.585171e-07
Premium-Good       0.04277023  0.02165976  0.06388070 3.256208e-07
Ideal-Good        -0.14634768 -0.16643613 -0.12625923 0.000000e+00
Premium-Very Good  0.08557350  0.06974902  0.10139799 0.000000e+00
Ideal-Very Good   -0.10354440 -0.11797729 -0.08911151 0.000000e+00
Ideal-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}

https://stackoverflow.com/questions/24553963/

相关文章:

xcode4 - XCode 4 注释格式(换行)

c++ - 使用 Visual Studio 进行高级 (C++) 源代码重新格式化?

url - 查询字符串中是否有任何格式约定?

arrays - 填充表格数据的打印输出

html - 格式丰富的内容用什么标记语言?

r - 如何在 R Shiny 中对数据帧进行条件格式设置?

r - 通过带有条件格式的 xlsx 将数据框导出到 Excel

c++ - 对于 GCC <5,是否有 std::put_time 的内置替代方案?

python - 如何在 Python 格式说明符中使用变量名

c# - 使用对象初始化器时修复缩进