Formattable не отображает вывод в Shiny - PullRequest
0 голосов
/ 09 октября 2018

Код работает нормально в Rstudio, код

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

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

Однако я не знаю, как вывести этот datatable / formattable?в блестящем.

Ошибка говорит:

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

1 Ответ

0 голосов
/ 10 октября 2018

Надеюсь, это маленькое блестящее приложение поможет вам.Поскольку у меня нет вашего фрейма данных report, я заменил его на фрейм данных iris.Таким образом, formatStyle будет искать столбец Species и окрашивать их по-разному.

В пользовательском интерфейсе вы определяете вывод через 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)
...