0
我很努力地創建selectInput菜單,這些菜單僅在選擇特定選項卡時纔會出現,並且會出現一個特定於其他菜單中可以選擇的選項的額外selectInput菜單。 下面簡要重複的例子,conditionPanel in 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()
)
server.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"
)
})
}
我希望出現在selectLifestage菜單隻有當標籤被選中,並根據映射EFH選擇的物種我希望fishLifestage vs. shrimpLifestage selectInput菜單發生變化。當conditionPanel條件=兩條或更少的語句時,我已經得到了這個工作,但我需要它至少評估三條。到目前爲止,我還沒有找到解決此問題的運氣。任何幫助,將不勝感激!謝謝