複数のオプションが有効な場合、条件付きパネル問題が発生します。複数の条件を持つ条件付きパネルが真です
ユーザーが2つの選択肢を順番に選択するコードの一部で、データベースにフィルタが作成されます。
第1の選択肢では、状態は可能性のリストから選択されます。ユーザーが複数の状態を選択できることを知ることは重要です。
2番目の選択肢では、都市は可能性のリストから選択されます。この第2の選択肢では、ユーザは複数の都市を選択することもできる。
私が言ったように、重要な情報は、ユーザーが複数の州を選択できることです。その州の複数の選択肢から、すべての選択された州の都市を示す必要があります。
ユーザーが1つの状態のみを選択した場合、すべて正常に動作します。私のコードの問題は、複数の状態を選択すると開始され、ConditionalPanelは単に消えます(何も表示されず、すでに表示されている最初のオプションさえも表示されません)。ユーザーが選択項目を削除したときにのみ表示され、1つだけ保持されます。
私が直面しているこの問題を解決する手助けをしてくれる人がいれば、非常に感謝しています。
library(shiny)
library(shinydashboard)
library(readr)
state_options <- c("1. Texas", "2. Massachusetts", "3. Colorado")
options_state_texas <- c("Alamo", "Alton", "Angus", "Atlanta", "Aurora",
"Brownsboro", "Premont", "Princeton", "Red Oak",
"Staples", "Texas City")
options_state_massachusetts <- c("Boston", "Cambridge", "Chelsea", "Springfield")
options_state_colorado <- c("Aspen", "Aurora", "Avon", "Cortez", "Denver",
"Vail")
createMainPanel <- function(index_id) {
mainPanel(
width = 12,
tabsetPanel(
tabPanel(
strong("Split"),
br(),
box(
title = strong("State:"),
status = "primary",
width = 3,
collapsible = TRUE,
checkboxGroupInput(
inputId = paste0(index_id, "_state"),
label = NULL,
choices = state_options
)
),
conditionalPanel(
condition = "input.distribution_of_sales_sub_state == '1. Texas'",
box(
title = strong("Cities state 1:"),
status = "primary",
width = 3,
collapsible = TRUE,
checkboxGroupInput(
inputId = paste0(index_id, "_checkbox_city_1"),
label = NULL,
choices = options_state_texas
)
)
),
conditionalPanel(
condition = "input.distribution_of_sales_sub_state == '2. Massachusetts'",
box(
title = strong("Cities state 2:"),
status = "primary",
width = 3,
collapsible = TRUE,
checkboxGroupInput(
inputId = paste0(index_id, "_checkbox_city_2"),
label = NULL,
choices = options_state_massachusetts
)
)
),
conditionalPanel(
condition = "input.distribution_of_sales_sub_state == '3. Colorado'",
box(
title = strong("Cities state 3:"),
status = "primary",
width = 3,
collapsible = TRUE,
checkboxGroupInput(
inputId = paste0(index_id, "_checkbox_city_3"),
label = NULL,
choices = options_state_colorado
)
)
)
)
)
)
}
createTabItem <- function(title, index_id) {
tabItem(
tabName <- paste0(index_id, "_tab"),
h2(title),
createMainPanel(index_id))
}
createBox <- function(session, index_id, opcoes){
updateCheckboxGroupInput(
session,
index_id,
choices = c(opcoes))
}
ui <- dashboardPage(
dashboardHeader(disable = TRUE),
dashboardSidebar(
title = img(src='logo.png', height = 60, width = 180, style = "display: block;
margin-left: auto; margin-right: auto;"),
HTML("<br><br>"),
width = 230,
sidebarMenu(
menuItem(strong("Sales"), tabName = "distribution_of_sales_sub_tab")
)
),
dashboardBody(
tabItems(
createTabItem(strong("Distribution of sales"),
"distribution_of_sales_sub")
)
)
)
server <- function(input, output, session) {
observe({
createBox(session,"distribution_of_sales_sub_state", state_options)
createBox(session,"distribution_of_sales_sub_checkbox_city_1",
options_state_texas)
createBox(session,"distribution_of_sales_sub_checkbox_city_2",
options_state_massachusetts)
createBox(session,"distribution_of_sales_sub_checkbox_city_3",
options_state_colorado)
})
}
shinyApp(ui, server)
それはあなたがあなたの時間のために 'conditionalPanel' – krish
感謝のを使用せずに機能を実現することができ、その場合には、むしろcheckbox'で'より 'selectInput'オプションを使用する場合は解決策を考え出すする方が簡単かもしれません、@krish selectInputを使用すると、一度に複数の状態を選択することはできませんが、正しいですか?また、複数の状態を選択することは、分析のために非常に頻繁に行われます。 –
'selectInput'と' selectizeInput'の両方に 'multiple'という引数があります。これを複数の選択を可能にする 'TRUE'に設定することができます – krish