DT :: datatable中的因子下拉过滤器在闪亮的仪表板中不起作用

时间:2016-02-03 04:40:43

标签: r shiny shiny-server shinydashboard dt

只是我或者它是一个错误,如果我有一个因子列并且我使用DT添加过滤器,下拉菜单会在闪亮的仪表板中截止。

我使用mtcars作为例子,我将cyl作为一个因素。 (数字滑块过滤器工作正常,但因子过滤器不行)。这是代码和屏幕截图。

## app.R ##
library(shinydashboard)
library(dplyr)


mtcars$cyl <- as.factor(mtcars$cyl)

ui <- dashboardPage(
  dashboardHeader(title = "Simple Dashboard"),
  ## Sidebar content
  dashboardSidebar(sidebarMenu(
    menuItem(
      "Dashboard", tabName = "dashboard", icon = icon("dashboard")
    ),
    menuItem("Widgets", tabName = "widgets", icon = icon("th"))
  )),
  ## Body content
  dashboardBody(tabItems(
    # First tab content
    tabItem(tabName = "dashboard",
            fluidRow(
              box(plotOutput("plot1", height = 250)),

              box(
                title = "Controls",
                sliderInput("slider", "Number of observations:", 1, 100, 50)
              )
            )),

    # Second tab content
    tabItem(tabName = "widgets",
            fluidRow(DT::dataTableOutput('items_dt')))
  ))
)

server <- function(input, output) {
  set.seed(122)
  histdata <- rnorm(500)

  output$plot1 <- renderPlot({
    data <- histdata\[seq_len(input$slider)\]
    hist(data)
  })

  output$items_dt = DT::renderDataTable(
    mtcars,
    filter = 'bottom',
    options = list(scrollX = TRUE)
  )
}

shinyApp(ui, server)

Factor filters get cut-off

Numeric sliders work fine

3 个答案:

答案 0 :(得分:2)

通过不执行scrollX或scrollY以及将过滤器放在顶部,我有更好的运气。

乙^(

答案 1 :(得分:0)

似乎是带有DT的闪亮仪表板中的一个错误。报告https://github.com/rstudio/DT/issues/230

答案 2 :(得分:0)

我通过将数据框的列类型更改为因子来解决它:df[, 'X1'] <- as.factor(df[, 'X1'])