【发布时间】:2018-05-16 00:35:21
【问题描述】:
示例来自:Filter one selectInput based on selection from another selectInput?
我正在尝试创建一个闪亮的应用程序,用户可以在其中选择多个框,然后生成一些数据。我不明白如果我首先点击“火星”,然后第二个选项糖果被过滤,我现在想选择“士力架”,为什么点击士力架时一切都会恢复?
library(shiny)
library(shinydashboard)
library(shinyWidgets)
##
ui <- shinyUI({
sidebarPanel(
htmlOutput("brand_selector"),
htmlOutput("candy_selector"))
})
##
server <- shinyServer(function(input, output) {
candyData <- read.table(
text = "Brand Candy
Nestle 100Grand
Netle Butterfinger
Nestle Crunch
Hershey's KitKat
Hershey's Reeses
Hershey's Mounds
Mars Snickers
Mars Twix
Mars M&Ms",
header = TRUE,
stringsAsFactors = FALSE)
output$brand_selector <- renderUI({
available2 <- candyData
if(NROW(input$candy) > 0 ) available2 <- candyData[candyData$Candy %in% input$candy, ]
pickerInput(
inputId = "brand",
label = "Brand:",
choices = as.character(unique(available2$Brand)),
multiple = T,options = list(`actions-box` = TRUE))
})
output$candy_selector <- renderUI({
available <- candyData
if(NROW(input$brand > 0)) available <- candyData[candyData$Brand %in% input$brand, ]
pickerInput(
inputId = "candy",
label = "Candy:",
choices = unique(available$Candy),
multiple = T,options = list(`actions-box` = TRUE))
})
})
##
shinyApp(ui = ui, server = server)
【问题讨论】:
标签: r shiny shinydashboard