闪亮仪表板中 DT::datatable 中的因子下拉过滤器不起作用
Posted
技术标签:
【中文标题】闪亮仪表板中 DT::datatable 中的因子下拉过滤器不起作用【英文标题】:Factor dropdown filter in DT::datatable in shiny dashboards not working 【发布时间】:2016-05-12 03:41:42 【问题描述】:仅仅是我还是一个错误,如果我有一个因子列并且我添加了带有 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)
【问题讨论】:
【参考方案1】:通过不使用 scrollX 或 scrollY 并在顶部放置过滤器,我在下拉菜单中获得了更好的运气。
B^(
【讨论】:
在仪表板中,如果您将过滤器放在顶部,所有过滤器都会被截断,即使是数字滑块:(【参考方案2】:这似乎是带有 DT 的闪亮仪表板中的一个错误。举报https://github.com/rstudio/DT/issues/230
【讨论】:
【参考方案3】:我通过将数据框的列类型更改为因子来解决它:df[, 'X1']
【讨论】:
以上是关于闪亮仪表板中 DT::datatable 中的因子下拉过滤器不起作用的主要内容,如果未能解决你的问题,请参考以下文章