В настоящее время мой пользовательский интерфейс настроен как на картинке с парой selectInputs
вверху.У меня есть два вопроса:
1) Как сделать так, чтобы «графические панели», которые появляются внизу, зависели от ввода «Выбранные метрики» вверху.Я не могу понять, как использовать conditionalPanel
со списками, то есть, как отображать несколько панелей, если выбрано несколько входов.Конечным результатом будет картина ниже, но в данный момент selectInput
сверху ничего не делает.
2) Можно ли динамически перемещать панели в зависимости от того, какие входы выбраны?Например, на рисунке ниже, если я отменил выбор «Показатель передозировки наркотиков», могу ли я получить график «Распространенность артрита» для динамического перемещения в местоположение уровня передозировки?По иронии судьбы, структура fluidRow
не слишком плавная в этом случае.
Мой код для этого чанка выглядит следующим образом (извинения за закомментированный код в точках):
fluidPage(
mainPanel(id = "hscontrols", class = "panel panel-default",
fluidRow(
column(3,
selectInput("healthstates","States:", c(structure(state.abb, names=state.name), "Washington, DC"="DC"),
selected = "AL",
multiple = FALSE)
),
column(6,
selectInput("hsmetrics", "Selected metrics",
c("Drug overdose rate",
"Arthritis prevalence",
"Opioid prescribing rate"),
selected = c("Drug overdose rate",
"Arthritis prevalence",
"Opioid prescribing rate"),
multiple = T))
)
),
fluidRow(
column(4,
mainPanel(id = "healthranks", class = "panel panel-default",
h3("Overall health snapshot:"),
# h4(htmlOutput("hsstate")),
dataTableOutput("ranktable1")
# dataTableOutput("ranktable2")
# htmlOutput("healthrankings")
)
),
column(8,
mainPanel(id = "drugoverdose", class = "panel panel-default",
h3("Drug overdose rate:"),
actionButton("drugodtoggle", "Additional info"),
conditionalPanel("input.drugodtoggle % 2 == 0",
htmlOutput('hsdrugoddef')),
# HTML('<button data-toggle="collapse" data-target="#drugoddef">Additional info</button>'),
# tags$div(id = 'drugoddef', class="collapse",
# htmlOutput('hsdrugoddef')),
plotOutput("drugodplot", hover = hoverOpts(id = "drugod_hover"))
)
)
),
fluidRow(
column(6,
# conditionalPanel("'Arthritis prevalence' %in% input.hsmetrics",
mainPanel(id = "arthritis", class = "panel panel-default",
h3("Arthritis prevalence:"),
actionButton("arthtoggle", "Additional info"),
conditionalPanel("input.arthtoggle % 2 == 0",
htmlOutput('hsarthdef')),
# HTML('<button data-toggle="collapse" data-target="#arthdef">Additional info</button>'),
# tags$div(id = 'arthdef', class="collapse",
# htmlOutput('hsarthdef')),
plotOutput("arthritisplot")
)
# )
),
column(6,
mainPanel(id = "prescribe", class = "panel panel-default",
h3("Opioid prescribing rate:"),
actionButton("prescribetoggle", "Additional info"),
conditionalPanel("input.prescribetoggle % 2 == 0",
htmlOutput('hsprescribedef')),
# HTML('<button data-toggle="collapse" data-target="#prescribedef">Additional info</button>'),
# tags$div(id = 'prescribedef', class="collapse",
# htmlOutput('hsprescribedef')),
plotOutput("prescribeplot")
)
)
)
)