Как динамически перемещать элементы пользовательского интерфейса (в основном, основные панели) в R блестящий? - PullRequest
0 голосов
/ 22 февраля 2019

В настоящее время мой пользовательский интерфейс настроен как на картинке с парой 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")
                           )
                    )
                  )
                )

Static shiny UI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...