我想在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
变量中的值(我在最终数据表中实际上并不需要这样做)。
这可能实现吗?
非常感谢提前。
答案 0 :(得分:2)
查看DT doc
您会看到可以将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)