【问题标题】:linking sidebarPanels with multiple inputs in the if loop : Shiny R在 if 循环中将 sidebarPanels 与多个输入链接:Shiny R
【发布时间】:2016-08-16 20:36:56
【问题描述】:

我在sidebarPanel 中有一个下拉菜单,我最多可以从中选择 2 个选项。我想在其中创建一个 if 循环 - 从下拉列表中选择 ('Saddle Joint' 和 'Gliding Joint') 或 ('Saddle Joint' and 'Synovial Fluid') 会导致选择对象 'x' 和 'y'在另一个名为 sidebarPanel 的数据集中 - 基本上是创建一个链接。 我试过这段代码,但它不起作用:

if ("Saddle Joint" %in% input$location & "Gliding Joint" %in% input$location || "Saddle Joint" %in% input$location & "Synovial Fluid" %in% input$location) {        
    updateCheckboxGroupInput(session,
                             "datasets", "Datasets:", choices = c("x","y"),
                             selected= c("x","y"))        
  }

请看截图! Screenshot

谢谢。

【问题讨论】:

    标签: r shiny shiny-server shinydashboard


    【解决方案1】:

    您需要告诉服务器注意 input$location 的变化,这可以使用 observeEvent 完成,如下所示:

    library(shiny)
    
    ui <- basicPage(
      selectInput(inputId = "location",
                  label = "Location",
                  choices = c("Saddle Joint",
                              "Gliding Joint",
                              "Synovial Fluid",
                              "Hinge Joint",
                              "Condyloid Joint",
                              "Flexor Tenosynovium"),
                  multiple = TRUE),
      checkboxGroupInput(inputId = "datasets",
                         label = "Datasets:",
                         choices = c("x", "y", "z"))
    )
    
    server <- function(input, output, session){
    
      observeEvent(eventExpr = input$location,
                   handlerExpr = {
    
                     if("Saddle Joint" %in% input$location & "Gliding Joint" %in% input$location || "Saddle Joint" %in% input$location & "Synovial Fluid" %in% input$location)
                     updateCheckboxGroupInput(session = session,
                                              inputId = "datasets",
                                              selected = c("x", "y"))
                   })
    
    }
    
    shinyApp(ui, server)
    

    【讨论】:

      猜你喜欢
      • 2021-03-30
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多