R Shiny DT阴影表格单元格基于TRUE或FALSE

时间:2018-05-04 21:16:40

标签: r shiny dt

我正在尝试根据单元格的内容格式化R Shiny应用程序中表格单元格的背景颜色。内容为TRUE或FALSE,并使用布尔函数进行分配。 styleEqual()不是格式化单元格的正确方法吗?以下将运行,但我的单元格仍未着色。

output$myTable <-
      DT::renderDataTable({
        result<-custom_function()
        result<-
        datatable(result)%>% formatStyle(
          names(result),
          backgroundColor = styleEqual(c(TRUE, FALSE), c('green', 'red'))
        )
        return(res)
      })

1 个答案:

答案 0 :(得分:1)

styleEqual是可行的方法,但您需要使用数字(1, 0)值而不是逻辑(TRUE, FALSE)。

以下是一个例子:

library(shiny)
library(DT)
library(magrittr)

iris2 <- iris
iris2$logical <- ifelse(iris$Sepal.Length > 5, TRUE, FALSE)

ui <- fluidPage(
  DT::dataTableOutput("tbl")  
)

server <- function(input, output, session) {
  output$tbl <- DT::renderDataTable( {
    datatable(iris2) %>% formatStyle(
      "logical",
      target = 'row',
      backgroundColor = styleEqual(c(1, 0), c('green', 'red'))
    )
  })
}

shinyApp(ui, server)

Example