首页 > 解决方案 > 如何根据在另一列中找到的十六进制字符串为一列中的值着色?

问题描述

我有一个数据表,称之为T,如下:

library(DT)
T <- data.frame(
  col1= c("abcd", "wxyz"),
  col2 =c("#ff0000","#00FF00"), stringsAsFactors = FALSE)

我的目标是有一个列,其中 col1 中的值与 col2 中的十六进制值相应地着色。

我尝试过:

datatable(T) %>% formatStyle(
  'col1',
  backgroundColor = styleEqual(c(0, 1), list(unique(T$col2))
)

此参考可能对https://rstudio.github.io/DT/010-style.html有所帮助,我只需要有关解决方法的帮助。如果我能澄清,请告诉我。谢谢!

标签: htmlcssr

解决方案


我认为这会做你想要的

datatable(T[, "col1", drop=FALSE]) %>% formatStyle(
  'col1',
  backgroundColor = styleEqual(T$col1, T$col2)
  )

在这里,我删除了您不想显示的列,然后styleEqual根据该列中的值设置颜色。


推荐阅读