有没有办法在反应数据上使用shinyWidget中的pickerGroup(或selectizeGroup)模块?

有没有办法在反应数据上使用shinyWidget中的pickerGroup(或selectizeGroup)模块?,r,shiny,reactive,R,Shiny,Reactive,我有一个闪亮的应用程序,在侧边栏中有一个第一个Selectizegroup模块,可以过滤3个变量的数据。我想把第二个selectize或pickergroup模块放在一个选项卡面板中,以生成一些带有在补充变量2上过滤的数据的绘图。但是我发现没有办法将pickerGroup模块应用于使用第一个group模块获得的反应数据 我已经试着用isolate()、update()、observeEvent()来实现它,但我总是失败 我的数据库的一个简单示例: base <- structure(lis

我有一个闪亮的应用程序,在侧边栏中有一个第一个Selectizegroup模块,可以过滤3个变量的数据。我想把第二个selectize或pickergroup模块放在一个选项卡面板中,以生成一些带有在补充变量2上过滤的数据的绘图。但是我发现没有办法将pickerGroup模块应用于使用第一个group模块获得的反应数据

我已经试着用isolate()、update()、observeEvent()来实现它,但我总是失败

我的数据库的一个简单示例:

base <- structure(list(annee = c(2017, 2018, 2017, 2016, 2018, 2017, 
                                 2017, 2018, 2018, 2016), 
                       code_composante = structure(c(2L, 1L,2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L), 
                                                   .Label = c("APS", "FSI"), 
                                                   class = "factor"), 
                       code_etape = structure(c(25L, 26L, 21L, 28L, 16L, 16L, 12L, 13L, 21L, 28L), 
                                              .Label = c("EP3CHE", "EP3EEE", "EP3GCE",  "EP3INE", "EP3MAE", "EP3MEE", "EP3PHE", "EP40EE", "EP40GE",  "EP40IE", "EP40KE", "EPCHIE", "EPCHSE", "EPEEAE", "EPGCCE", "EPINFE", "EPMACE", "EPMASE", "EPMATE", "EPMECE", "EPMIAE", "EPPHPE", "EPPHSE", "EPSDTE", "EPSDVE", "SP3SCE", "SP40PE", "SPAPSE"), 
                                              class = "factor"), 
                       particularite = structure(c(3L,1L, 3L, 3L, 3L, 3L, 3L, 4L, 3L, 3L), 
                                                 .Label = c("3LA", "4LA","Classique", "Parcours spécial"), 
                                                 class = "factor"), 
                       origine_gen2 = structure(c(1L, 3L, 3L, 4L, 4L, 3L, 4L, 1L, 3L, 3L), 
                                                .Label = c("Bacheliers antérieurs", "Flux latéral", "Néo-bacheliers", "Redoublement ", "Réorientation "), 
                                                class = "factor"), 
                       code_resultat = structure(c(2L, 4L, 2L, 3L, 4L, 3L, 3L, 4L, 4L, 1L), 
                                                 .Label = c("Admis", "Ajourné","Défaillant / démissionnaire", "Donnée manquante", "Réorientation (à affiner)"), class = "factor"), 
                       poursuite = structure(c(4L, 3L, 4L,6L, 3L, 6L, 4L, 3L, 3L, 2L), 
                                             .Label = c("Année supérieure - Flux latéral","Année supérieure - Flux normal", "Non déterminé", "Redoublement", "Réorientation", "Sortie UPS - Echec", "Sortie UPS - Réussite" ), 
                                             class = "factor")), 
                  class = c("tbl_df", "tbl", "data.frame" ), 
                  row.names = c(NA, -10L))
base%
dplyr::ungroup()

饼图您可以调用无功导体内的模块:

  filtered_flowchart_data <- reactive({
    x <- callModule(
      module = shinyWidgets::pickerGroupServer,
      id = "filterset_flowchart",
      data = filtered_data() %>% 
        droplevels() %>% 
        dplyr::mutate_if(is.factor, as.character),
      vars = c("origine_gen2", "code_resultat")
    ) 
    x()
  })
filtered\u流程图\u数据%
dplyr::mutate_if(is.factor,as.character),
vars=c(“源代码”\u gen2;“代码”\u结果”)
) 
x()
})
如果有问题,您也可以尝试

  filtered_flowchart_data <- reactive({
    callModule(
      module = shinyWidgets::pickerGroupServer,
      id = "filterset_flowchart",
      data = filtered_data() %>% 
        droplevels() %>% 
        dplyr::mutate_if(is.factor, as.character),
      vars = c("origine_gen2", "code_resultat")
    ) 
  })
filtered\u流程图\u数据%
液滴液位()%>%
dplyr::mutate_if(is.factor,as.character),
vars=c(“源代码”\u gen2;“代码”\u结果”)
) 
})

然后通过执行
filtered\u流程图_data()()

获得数据。您可以调用无功导体内的模块:

  filtered_flowchart_data <- reactive({
    x <- callModule(
      module = shinyWidgets::pickerGroupServer,
      id = "filterset_flowchart",
      data = filtered_data() %>% 
        droplevels() %>% 
        dplyr::mutate_if(is.factor, as.character),
      vars = c("origine_gen2", "code_resultat")
    ) 
    x()
  })
filtered\u流程图\u数据%
dplyr::mutate_if(is.factor,as.character),
vars=c(“源代码”\u gen2;“代码”\u结果”)
) 
x()
})
如果有问题,您也可以尝试

  filtered_flowchart_data <- reactive({
    callModule(
      module = shinyWidgets::pickerGroupServer,
      id = "filterset_flowchart",
      data = filtered_data() %>% 
        droplevels() %>% 
        dplyr::mutate_if(is.factor, as.character),
      vars = c("origine_gen2", "code_resultat")
    ) 
  })
filtered\u流程图\u数据%
液滴液位()%>%
dplyr::mutate_if(is.factor,as.character),
vars=c(“源代码”\u gen2;“代码”\u结果”)
) 
})

然后您通过执行
过滤流程图_data()()

来获取数据。谢谢您的回答,Stéphane,第二个命题完成了任务

filtered_flowchart_data <- reactive({
callModule(
  module = shinyWidgets::pickerGroupServer,
  id = "filterset_flowchart",
  data = filtered_data() %>% 
    droplevels() %>% 
    dplyr::mutate_if(is.factor, as.character),
  vars = c("origine_gen2", "code_resultat")
)}) 

我不知道它是否很干净,我从来没有使用过或看到过double()(),但结果非常完美:)

谢谢你的回答,Stéphane,第二个命题完成了

filtered_flowchart_data <- reactive({
callModule(
  module = shinyWidgets::pickerGroupServer,
  id = "filterset_flowchart",
  data = filtered_data() %>% 
    droplevels() %>% 
    dplyr::mutate_if(is.factor, as.character),
  vars = c("origine_gen2", "code_resultat")
)}) 
我不知道它是否很干净,我从未使用过或看到过double(),但结果非常完美:)