R 更改单元格值的标签,但保留其颜色

R 更改单元格值的标签,但保留其颜色,r,datatable,dt,R,Datatable,Dt,我正在使用DT软件包给由数字单元格值组成的频率表上色(df_编号,见下文) 要给表格上色,我遵循以下说明: 我的问题是,如何保持颜色,但更改显示的单元格值 您可以从绑定两个数据帧开始: df_numbered <- data.frame(c1 = 1:3, c2 = 4:6, c3 = 7:9) df_labeled <- data.frame(cat1 = letters[1:3

我正在使用
DT
软件包给由数字单元格值组成的频率表上色(
df_编号
,见下文)

要给表格上色,我遵循以下说明:


我的问题是,如何保持颜色,但更改显示的单元格值

您可以从绑定两个数据帧开始:

df_numbered <- data.frame(c1 = 1:3,
                          c2 = 4:6,
                          c3 = 7:9)
df_labeled <- data.frame(cat1 = letters[1:3],
                         cat2 = letters[4:6], 
                         cat3 = letters[7:9])
df <- cbind(df_labeled, df_numbered)
但是您不希望
df_编号
列,因此请隐藏它们:

datatable(df, 
          options = list(
            columnDefs = list(
              list(visible = FALSE, targets = 4:6)
            )
          )) %>% 
  formatStyle(names(df_labeled), valueColumns = names(df_numbered),  
              backgroundColor = styleInterval(brks, clrs))

正是我想要的,非常感谢!
brks <- quantile(df_numbered, probs = seq(.05, .95, .05), na.rm = TRUE)
clrs <- round(seq(255, 40, length.out = length(brks) + 1), 0) %>%
{paste0("rgb(255,", ., ",", ., ")")}
datatable(df_numbered) %>% 
          formatStyle(names(df_numbered), 
          backgroundColor = styleInterval(brks, clrs))
dt <- datatable(df_numbered) %>%
                formatStyle(names(df_numbered), 
                backgroundColor = styleInterval(brks, clrs))
dt$x$data <- df_labeled 
df_numbered <- data.frame(c1 = 1:3,
                          c2 = 4:6,
                          c3 = 7:9)
df_labeled <- data.frame(cat1 = letters[1:3],
                         cat2 = letters[4:6], 
                         cat3 = letters[7:9])
df <- cbind(df_labeled, df_numbered)
formatStyle(names(df_labeled), valueColumns = names(df_numbered),  
            backgroundColor = styleInterval(brks, clrs))
datatable(df, 
          options = list(
            columnDefs = list(
              list(visible = FALSE, targets = 4:6)
            )
          )) %>% 
  formatStyle(names(df_labeled), valueColumns = names(df_numbered),  
              backgroundColor = styleInterval(brks, clrs))