【发布时间】:2020-04-14 08:09:28
【问题描述】:
我在创建一个简单的 Shiny 应用程序时遇到了双重问题。我知道这个主题在其他几个问题中也有所涉及,但是在研究了它们之后,我还没有找到一个可以完全涵盖我的问题的问题。
我想渲染 mtcars 表(全 32 行作为默认选项),然后我想对允许多选的齿轮数量应用反应式过滤器。
以下代码在许多方面都不起作用:
除非设置了齿轮过滤器,否则不会渲染 mtcars 表。相反 - 我在应用程序中收到一条错误消息:“结果的长度必须为 32,而不是 0”
选择多个档位等级不能正确叠加。当我分别选择每个齿轮号时,表格会正确呈现,但是,可以说,当我结合显示齿轮号 3 和 4 时,我只返回 10 行,这是不正确的。
提前感谢您的帮助。
ui <- fluidPage(
sidebarLayout(
mainPanel(
selectInput("pickvalue", label = "Gears", mtcars$gear,
selected = NULL, multiple = T)),
tableOutput("tableOut")
)
)
server <- function(input, output, session){
gears <- reactive({
mtcars %>% filter(gear == input$pickvalue) %>% select(-gear)
})
output$tableOut<- renderTable({gears()
})
}
shinyApp(ui = ui, server=server)
【问题讨论】:
-
如果允许多个选项按...过滤,我相信您想要
gear %in% input$pickvalue
标签: r datatable shiny datatables reactive-programming