2017-02-10 6 views
0

特定のタブが選択されているときにのみ表示されるselectInputメニューを作成しようとすると、他のメニューで選択できるものに固有のselectInputメニューが表示されます。以下 は、私がselectLifestageメニューは、EFHマップタブが選択されている場合にのみ表示されるようにしたい、とに応じて、 conditionPanel in Rの複数の条件

server <- function(input, output) { 

mapSpecies <- reactive({ 
    switch(input$selectSpecies, 
     "ALMACOJACK" = "ALMACOJACK", 
     "BANDEDRUDDERFISH" = "BANDEDRUDDERFISH", 
     "BLACKGROUPER" = "BLACKGROUPER", 
     "BLACKFINSNAPPER" = "BLACKFINSNAPPER", 
     "BLUELINETILEFISH" = "BLUELINETILEFISH", 
     "BROWNSHRIMP" = "BROWNSHRIMP", 
     "COBIA" = "COBIA", 
     "CUBERASNAPPER" = "CUBERASNAPPER") 
    }) 

mapfishLifestage <- reactive({ 
    switch (input$fishLifestage, 
      "spawningAdult"="spawningAdult", 
      "adult"="adult", 
      "earlyJuvenile" = "earlyJuvenile", 
      "lateJuvenile" = "lateJuvenile", 
      'larvae' = 'larvae', 
      'postLarvae' = 'postLarvae', 
      "eggs" = "eggs" 
) 
}) 

mapshrimpLifestage <- reactive({ 
    switch (input$shrimpLifestage, 
      "fertilizedEgg" = "fertilizedEgg", 
      "latePostlarvaeJuvenile" = "latePostlarvaeJuvenile", 
      "adult" = "adult", 
      "spawningAdult"="spawningAdult", 
      "subAdult" = "subAdult", 
      "larvae" = "larvae" 

) 
}) 

} 

server.R

ui.R

library(shinydashboard) 

ui <- dashboardPage(
    dashboardHeader(title="Essential Fish Habitat Application"), 
    dashboardSidebar(
    sidebarMenu(id="tab", 
     menuItem ("Welcome", tabName = "welcome"), 
     menuItem("EFH Maps",tabName="map"), 
     selectInput("selectSpecies", h3("Select species"), 
        c("Almaco jack" = "ALMACOJACK", 
        "Banded rudderfish" = "BANDEDRUDDERFISH", 
        "Black grouper" = "BLACKGROUPER", 
        "Blackfin snapper" = "BLACKFINSNAPPER", 
        "Blueline tilefish" = "BLUELINETILEFISH", 
        "Brown shrimp" = "BROWNSHRIMP", 
        "Cobia" = "COBIA", 
        "Cubera snapper" = "CUBERASNAPPER"), 
        selected = "ALMACOJACK"), 
     conditionalPanel(condition="input.tab=='map' && input.selectSpecies != 'BANDEDRUDDERFISH' || 
         input.selectSpecies != 'BLACKGROUPER'", 
         selectInput("fishLifestage", h3("Select lifestage:"), 
            c("Eggs"= "eggs", 
             "Larvae" = "larvae", 
             "Postlarvae" = "postLarvae", 
             "Early juveniles" = "earlyJuvenile", 
             "Late juveniles" = "lateJuvenile", 
             "Adults" = "adult", 
             "Spawning adults" = "spawningAdult" 
            ), 
            selected = 'adult')), 
    conditionalPanel(condition="input.tab=='map' && input.selectSpecies == 'BANDEDRUDDERFISH' || 
         input.selectSpecies == 'BLACKGROUPER'", 
         selectInput("shrimpLifestage", h3("Select lifestage:"), 
            c("Fertilized eggs"= "fertilizedEgg", 
            "Larvae, pre-settlement postlarvae" = "larvae", 
            "Late postlarvae, juveniles" = "latePostlarvaeJuvenile", 

            "Sub-adults" = "subAdult", 
            "Non-spawning adults" = "adult", 
            "Spawning adults" = "spawningAdult" 
           ), 
            selected = 'adult')))), 
    dashboardBody() 
) 

簡単な再現性の一例です選択された種は、私は魚を望んでいますライフステージ対shrimpLifestageのselectInputメニューを変更します。 conditionPanel条件が2つ以下の文の場合にはこれを動作させていますが、少なくとも3つを評価する必要があります。私は今までこの問題を解決するために私の検索で運がなかった。どんな助けもありがとう!ありがとう

答えて

1

私は括弧を追加して、||条件& &最初の条件付きパネルでは、あなたが望むものを得ることができます。

ui <- dashboardPage(
    dashboardHeader(title="Essential Fish Habitat Application"), 
    dashboardSidebar(
    sidebarMenu(id="tab", 
       menuItem ("Welcome", tabName = "welcome"), 
       menuItem("EFH Maps",tabName="map"), 
       selectInput("selectSpecies", h3("Select species"), 
          c("Almaco jack" = "ALMACOJACK", 
           "Banded rudderfish" = "BANDEDRUDDERFISH", 
           "Black grouper" = "BLACKGROUPER", 
           "Blackfin snapper" = "BLACKFINSNAPPER", 
           "Blueline tilefish" = "BLUELINETILEFISH", 
           "Brown shrimp" = "BROWNSHRIMP", 
           "Cobia" = "COBIA", 
           "Cubera snapper" = "CUBERASNAPPER"), 
          selected = "ALMACOJACK"), 
       conditionalPanel(condition="input.tab=='map' && (input.selectSpecies != 'BANDEDRUDDERFISH' && 
         input.selectSpecies != 'BLACKGROUPER')", 
           selectInput("fishLifestage", h3("Select fish lifestage:"), 
              c("Eggs"= "eggs", 
               "Larvae" = "larvae", 
               "Postlarvae" = "postLarvae", 
               "Early juveniles" = "earlyJuvenile", 
               "Late juveniles" = "lateJuvenile", 
               "Adults" = "adult", 
               "Spawning adults" = "spawningAdult" 
              ), 
              selected = 'adult')), 
       conditionalPanel(condition="input.tab=='map' && (input.selectSpecies == 'BANDEDRUDDERFISH' || 
         input.selectSpecies == 'BLACKGROUPER')", 
           selectInput("shrimpLifestage", h3("Select shrimp lifestage:"), 
              c("Fertilized eggs"= "fertilizedEgg", 
               "Larvae, pre-settlement postlarvae" = "larvae", 
               "Late postlarvae, juveniles" = "latePostlarvaeJuvenile", 

               "Sub-adults" = "subAdult", 
               "Non-spawning adults" = "adult", 
               "Spawning adults" = "spawningAdult" 
              ), 
              selected = 'adult')))), 
    dashboardBody() 
) 

希望すると助かります!