首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据R中pickerInput 1中选择的值更新pickerInput 2中的选择

根据R中pickerInput 1中选择的值更新pickerInput 2中的选择
EN

Stack Overflow用户
提问于 2019-05-03 06:11:38
回答 1查看 994关注 0票数 3

我在应用程序中有两个pickerInputs。第一个pickerInput的代码片段如下:

代码语言:javascript
复制
  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的代码片段如下所示:

代码语言:javascript
复制
pickerInput('dept', 'Department', choices = dept, c('A','B','C','D'), multiple = TRUE)

因此,当从第一个pickerInput中选择管理器时,应该在第二个pickerInput的选择中显示相应的离开。这应该是动态的。

这在R中有可能吗?如果没有,是否还有其他替代方法来实现此功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-03 06:19:52

您可以使用uiOutputrenderUI动态生成所需的输入对象。下面给出了一个工作示例,希望这能有所帮助。

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55964163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档