使用行名更改数据表中行的背景色

时间:2019-01-03 00:27:46

标签: r shiny shinydashboard shinyjs shiny-reactivity

我有一个要根据行名和行中存在的值自定义的数据表。

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

下面是我的数据框。

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则为绿色,否则为红色。 有什么办法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

好的,这是使用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") 

如果只想给文本加上颜色(而不是背景),则可以将bg替换为color

flextable是用于创建漂亮表的好程序包。希望这就是你的追求。

编辑:以某种方式错过了绿色/红色位,现在将其添加