Обновление выбора в pickerInput 2 на основе значения, выбранного в pickerInput 1 в R - PullRequest
2 голосов
/ 03 мая 2019

У меня есть два 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
)

Отдел соответствующих менеджеров указан в фрейме данных details

Фрагмент второго входа pickerInputследующим образом:

pickerInput('dept', 'Department', choices = dept, c('A','B','C','D'), multiple = TRUE)

Таким образом, когда менеджеры выбираются из первого pickerInput, соответствующие отладки должны отображаться в вариантах выбора второго pickerInput.Это должно быть сделано динамически.

Возможно ли это в R?Если нет, есть ли другие альтернативы для этой функции?

1 Ответ

0 голосов
/ 03 мая 2019

Вы можете использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...