2016-08-05 38 views
0

Ich habe eine Dropdown-Liste in sidebarPanel, aus dem ich maximal 2 Optionen auswählen kann. Ich möchte eine if-Schleife erstellen, bei der die Auswahl ("Sattelgelenk" und "Gleitgelenk") oder ("Sattelgelenk" und "Synovialflüssigkeit") aus dem Dropdown zur Auswahl der Objekte "x" und "y" führt in einem anderen sidebarPanel namens Datasets - im Grunde eine Verknüpfung zu schaffen. Ich habe versucht, dieses Stück Code, aber es funktioniert nicht:Verknüpfung von SidebarPanels mit mehreren Eingängen in der if-Schleife: Shiny R

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"))   
    } 

Werfen Sie einen Blick auf den Screenshot! Screenshot

Danke.

Antwort

0

Sie müssen dem Server anweisen, für Änderungen des Eingangs $ Lage seinen Blick, die observeEvent mit getan werden kann, wie hier zu sehen:

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)