Formattable不会在Shiny中呈现输出

时间:2018-10-09 16:04:08

标签: r datatable shiny htmlwidgets

该代码在Rstudio中正常工作,代码为

library(datatable)
library(shiny)
library(magrittr)

datatable(report) %>% formatStyle('status',target = 'row',
            backgroundColor = styleEqual(c("Completed","Over run"), c('lightgreen','red')))

但是,我不知道如何输出此数据表/格式表?在闪亮。

错误提示:

no applicable method for 'as.htmlwidget' applied to an object of class "c('datatables', 'htmlwidget')"

1 个答案:

答案 0 :(得分:0)

我希望这个小小的ShinyApp可以为您提供帮助。由于我没有您的数据框report,因此我将其替换为iris数据框。因此,formatStyle将查找列Species并为它们涂上不同的颜色。

在ui中,您可以通过DT::dataTableOutput("YourTableID")定义输出,在服务器中,可以定义类似output$YourTableID <- DT::renderDataTable({ ... })的输出,在其中放置代码以生成数据表。

您正在寻找的图书馆是DT而不是datatable

library(DT)
library(shiny)

report <- iris

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

server <- function(input, output, session) {
  output$table <- DT::renderDataTable({
    datatable(report) %>% formatStyle('Species',target = 'row',
                                      backgroundColor = styleEqual(c("setosa","versicolor", "virginica"), 
                                                                   c('lightgreen','red', "yellow")))
  })
}

shinyApp(ui, server)