R DT datatable - 连续值的条件颜色格式

时间:2016-07-18 07:20:01

标签: jquery r datatable dt

我想在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变量中的值(我在最终数据表中实际上并不需要这样做)。

这可能实现吗?

非常感谢提前。

1 个答案:

答案 0 :(得分:2)

查看DT doc

2.9转义表内容

您会看到可以将HTML内容添加到您的表格中,并使用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)