首页 > 解决方案 > 使用行名更改数据表中行的背景颜色

问题描述

我有一个数据表,我想根据行名和行中存在的值对其进行自定义。

自定义数据表的颜色通常由列名完成,而不是行名。

下面是我的数据框。

df <- data.frame(`1st`=c(100, 39, 5.6), 
                 `2nd`=c(200, 70, 5.9), 
                 `3rd`=c(230, 100, 6.3), 
                 `4th`=c(300, 98, 7.0))
rownames(df) <- c("Bins", "Accuracy", "SubYeild")

就我而言,如果您查看第三行,即 SubmissionYield,我希望该特定行的单元格为绿色,如果它大于 6,否则为红色。有什么办法可以做到这一点?

标签: rshinyshinydashboardshinyjsshiny-reactivity

解决方案


好的,这是使用flextable包制作漂亮表格的一种方法:

library(flextable) # may need install.packages("flextable") first
library(magrittr)  # for the '%>%' piping function

df <- data.frame(`1st`=c(100, 39, 5.6), 
                 `2nd`=c(200, 70, 5.9), 
                 `3rd`=c(230, 100, 6.3), 
                 `4th`=c(300, 98, 7.0))
rownames(df) <- c("Bins", "Accuracy", "SubYeild")

table <- df %>%
  regulartable() %>%    # turns it into a table
  bg(i = 3, j = which(df[3, ] > 6),  bg="green") %>%
  bg(i = 3, j = which(df[3, ] <= 6), bg="red") 

如果您只想为文本着色(而不是背景),您可以替换bgcolor.

flextable是创建漂亮表格的绝佳软件包。希望这就是你所追求的。

编辑:不知何故错过了绿色/红色位,现在将其添加


推荐阅读