【发布时间】:2018-08-09 10:08:25
【问题描述】:
我创建了一个闪亮的应用程序并希望实现一个“非此即彼”过滤器。
假设所有内容都已预先选择,因此表格完全显示。如果我选择一个过滤器,则另一个过滤器将被忽略/忽略/无效/...
例如,我选择 'gears' = 3 并且 'carb' 为空。比我添加 'gears' = 4。之后我选择 'carb' = 1 并且 'gear' 过滤器为空。
也许有人可以帮助我。我正在解决这个问题。我想我需要使用reactive 或eventReactive 或其他类型的reactive-表达式。但也许这里有人有一个想法。
library(shiny)
library(shinyWidgets)
data(mtcars)
allcarbs <- sort(unique(mtcars$carb))
allgears <- sort(unique(mtcars$gear))
ui <- fluidPage(
pickerInput(inputId = "carbinput",
label = h4("carb"),
choices = allcarbs,
selected = allcarbs,
multiple = TRUE, options = list('actions-box' = TRUE)),
h4("or"),
pickerInput(inputId = "gearinput",
label = h4("gears"),
choices = allgears,
selected = allgears,
multiple = TRUE, options = list('actions-box' = TRUE)),
tableOutput("mtcarstab")
)
server <- function(input, output, session) {
output$mtcarstab <- renderTable({
subset(mtcars,
gear %in% as.numeric(input$gearinput) |
carb %in% as.numeric(input$carbinput))
})
}
shinyApp(ui, server)
【问题讨论】: