Shiny 选择输入类别选择

Shiny 选择输入类别选择,shiny,Shiny,我有一个选择输入代码如下 selectInput('x4', 'X4', choices = list( Eastern = c(`New York` = 'NY', `New Jersey` = 'NJ'), Western = c(`California` = 'CA', `Washington` = 'WA') ), selectize = FALSE) 是否可以启用类别部分,如东部、西部。如果用户选择东部,则必须加载两个值(新泽西和纽约)。有可能吗?库(闪亮) libr

我有一个选择输入代码如下

selectInput('x4', 'X4', choices = list(
     Eastern = c(`New York` = 'NY', `New Jersey` = 'NJ'),
  Western = c(`California` = 'CA', `Washington` = 'WA')
), selectize = FALSE)

是否可以启用类别部分,如东部、西部。如果用户选择东部,则必须加载两个值(新泽西和纽约)。有可能吗?

库(闪亮)
library(shiny)

onInitialize <- "
function(){
  var select = this.$input[0];
  this.$dropdown_content.on('mousedown', function(e){
    e.preventDefault(); 
    return false;
  }).on('click', '.optgroup-header', function(e){
    var options = $(this).parent().find('.option');
    var items = [];
    options.each(function(i, opt){items.push($(opt).data('value'));});
    var selections = select.selectize.items;
    select.selectize.setValue(items.concat(selections));
  });
}
"

shinyApp(
  ui = fluidPage(
    selectizeInput("state", "Choose a state:",
                list(`East Coast` = list("NY", "NJ", "CT"),
                     `West Coast` = list("WA", "OR", "CA"),
                     `Midwest` = list("MN", "WI", "IA")),
                multiple = TRUE, 
                options = list(
                  onInitialize = I(onInitialize)
                )
    )
  ),
  server = function(input, output){}
)
初始化