我在应用程序中有两个pickerInputs。第一个pickerInput的代码片段如下:
managers <- c('Ram', 'Vijay','Arun','Aswin')
dept <- c('A','B','C','D')
details <- data.frame("Managers" = managers, "Department" = dept)
pickerInput(
'manager', 'Manager',
choices = managers ,
c('Ram', 'Vijay','Arun','Aswin'),
multiple = TRUE
)相应经理的部门列在dataframe details中。
第二个pickerInput的代码片段如下所示:
pickerInput('dept', 'Department', choices = dept, c('A','B','C','D'), multiple = TRUE)因此,当从第一个pickerInput中选择管理器时,应该在第二个pickerInput的选择中显示相应的离开。这应该是动态的。
这在R中有可能吗?如果没有,是否还有其他替代方法来实现此功能?
发布于 2019-05-03 06:19:52
您可以使用uiOutput和renderUI动态生成所需的输入对象。下面给出了一个工作示例,希望这能有所帮助。
library(shiny)
library(shinyWidgets)
managers <- c('Ram', 'Vijay','Arun','Aswin')
dept <- c('A','B','C','D')
details <- data.frame("Managers" = managers, "Department" = dept, stringsAsFactors = F)
ui <- fluidPage(
pickerInput(
'manager', 'Manager',
choices = managers ,
c('Ram', 'Vijay','Arun','Aswin'),
multiple = TRUE
),
uiOutput('picker2')
)
server <- function(input, output, session) {
output$picker2 <- renderUI({
choices = details$Department[details$Managers %in% input$manager]
pickerInput('dept', 'Department', choices = choices, choices, multiple = TRUE)
})
}
shinyApp(ui, server)https://stackoverflow.com/questions/55964163
复制相似问题