首页 > 解决方案 > 如何将单元格颜色添加到 R 中的非数字值?(可格式化或 DT)

问题描述

得到以下数据

library(formattable)
DF <- data.frame(Ticker=c("", "", "", "IBM", "AAPL", "MSFT"),
    Name=c("Dow Jones", "S&P 500", "Technology", 
       "IBM", "Apple", "Microsoft"),
         Value=(c(15988.08, 1880.33, NA, 
            130.00, 97.05, 50.99)),
              Change=(c(-0.0239, -0.0216, 0.021, 
               -0.0219, -0.0248, -0.0399)))

试图在表格中将其可视化,例如 formattable 或 DT

唯一的问题是我想为每个名称值添加不同的单元格颜色

所以基本上,当您查看表格时,您正在查看的名称是彩色单元格

在 DT 或 formmattable 中似乎无法做到

有任何想法吗?

标签: rdtformattable

解决方案


是你想要的吗?我不知道包含“ &”的单元格有什么问题...

DF <- data.frame(Ticker=c("", "", "", "IBM", "AAPL", "MSFT"),
                 Name=c("Dow Jones", "S&P 500", "Technology", 
                        "IBM", "Apple", "Microsoft"),
                 Value=(c(15988.08, 1880.33, NA, 
                          130.00, 97.05, 50.99)),
                 Change=(c(-0.0239, -0.0216, 0.021, 
                           -0.0219, -0.0248, -0.0399)))

colors <- substring(viridisLite::viridis(nrow(DF)), 1, 7)

datatable(DF) %>%
  formatStyle(2, backgroundColor = styleEqual(DF$Name, colors))

在此处输入图像描述


编辑

一个人必须逃避列来解决问题:

datatable(DF, escape = 2) %>%
  formatStyle(2, backgroundColor = styleEqual(DF$Name, colors))

在此处输入图像描述


推荐阅读