R Shiny:formattable不会改变任何内容

时间:2019-06-16 19:45:07

标签: r shiny

我正在编写一个Shiny应用程序,我想使用formattable在条件下为某些结果着色。 我遵循了here提供的解决方案 here ,但这些都不起作用。莫名其妙的是,尽管显示了该表,但下面的示例并没有为结果着色(至少对我而言):

library(DT)
library(shiny)
library(shinydashboard)
library(data.table)
library(formattable)


ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    tabsetPanel(box(formattableOutput("dat"))
    )
  )
)

server <- function(input, output) {

data <- head(mtcars)

  output$dat <- renderFormattable({
    formattable(data, 
                disp = formatter("span", 
                                 style = x ~ style(color = ifelse(x < 200, "green", "gray")))
    )
  })

}


shinyApp(ui, server)

有人解决吗?

1 个答案:

答案 0 :(得分:0)

此答案来自KoderKow(https://community.rstudio.com/t/r-shiny-formattable-does-not-change-anything/33465):

formattable()中数据之后的参数需要一个列表,我们要做的就是将disp包装在list()函数中。下面的工作代码!

library(DT)
library(shiny)
library(shinydashboard)
library(data.table)
library(formattable)


ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    tabsetPanel(box(formattableOutput("dat"))
    )
  )
)

server <- function(input, output) {

  data <- head(mtcars)

  output$dat <- renderFormattable({
    formattable(data, list(
                disp = formatter("span", 
                                 style = x ~ style(color = ifelse(x < 200, "green", "gray")))
    ))
  })

}


shinyApp(ui, server)

现在可以使用