두 개 이상의 옵션이 유효 할 때 conditionalPanel 문제가 있습니다.둘 이상의 조건이있는 ConditionalPanel이 참일 경우
사용자가 두 가지를 차례로 선택하는 코드의 일부로 데이터베이스에 필터가 만들어집니다.
첫 번째 선택에서 상태는 가능성 목록에서 선택됩니다. 사용자가 둘 이상의 주를 선택할 수 있다는 것을 아는 것이 중요합니다.
두 번째 선택에서 도시는 가능성 목록에서 선택됩니다. 이 두 번째 선택에서 사용자는 둘 이상의 도시를 선택할 수도 있습니다.
내가 말했듯이 중요한 정보는 사용자가 둘 이상의 주를 선택할 수 있다는 것입니다. 따라서 여러 주 선택 상태에서 모든 선택된 주에 도시가 표시되어야합니다.
사용자가 하나의 상태 만 선택하면 모든 것이 올바르게 작동합니다. 두 개 이상의 상태를 선택하면 내 코드의 문제가 시작되고 ConditionalPanel은 사라집니다 (아무 것도 표시되지 않고 이미 표시된 첫 번째 옵션조차도 표시되지 않음). 사용자가 선택 사항을 제거하고 하나만 유지하면 다시 나타납니다.
내가 직면 한이 문제를 해결할 수있는 사람이 몇 분 남았습니다. 매우 감사 할 것입니다.
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