R DT数据表 - 连续值的条件颜色格式

R DT datatable - conditional colour format for continuous value

我想使用 R 中的 datatable 函数应用条件格式。请考虑以下情况:

test <- data.frame(
  var1 = sapply(1:L, function(x)
    paste("<X>",paste0(x,
                       letters,
                       LETTERS,
                       "\n",
                       collapse=" "))),
  var2 = round(rnorm(L),2)
)

test$var2 <- ifelse(test$var2 > 1, 1, test$var2)
test$var2 <- ifelse(test$var2 < -1, -1, test$var2)
test$tmp  <- test$var2*255
test$R    <- test$G <- 0
test$R    <- ifelse(test$tmp < 0, round(abs(test$tmp)), test$R)
test$G    <- ifelse(test$tmp > 0, round(test$tmp), test$G)
test$col  <- paste0("rgb(",test$R,",",test$G,",0)")

test <- test[,c("var1","var2","col")]

datatable(test)

我想 var1 的字体颜色从 col 变量中获取值(我在最终数据 table 中实际上不需要)。

这可以实现吗?

非常感谢。

看看 DT doc

2.9 转义 table 内容

您会发现可以将 HTML 内容放入 table 并使用 escape=F 使其在 HTML 中可读。

您可以对数据框的变量执行类似的操作。

apply(yourMatrix,2,function(x) ifelse(x>value,  
paste0('<span style="color:red">',x,'</span>'),
paste0('<span style="color:blue">',x,'</span>')
)

例如,如果您有一个向量 x <- c(1,2,3,4) 并且希望高于 0 的值是红色,您将有

[1] "<span style=\"color:red\">1</span>"
[2] "<span style=\"color:red\">2</span>"
[3] "<span style=\"color:red\">3</span>"
[4] "<span style=\"color:red\">4</span>"

然后
datatable(yourMatrix, escape = FALSE)