在 Shiny 中对输入小部件进行分组

Mis*_*caE 2 layout user-interface r shiny

我正在构建一个闪亮的应用程序,我希望能够对输入小部件进行分组,最好为每个组都有一个标题。例如,我想要一个用于“裤子尺码”的框,其中包含腰部下拉菜单和内缝下拉菜单,然后是另一个用于“T 恤尺码”的框,其中包含 XS/S/ 下拉菜单M/L/XL 和男女通用/女式单选按钮。

有没有办法将小部件集放入自己的盒子中,或者打破它们全部放入的标准灰盒子?

谢谢!

nil*_*ole 5

如果您想使用布局fluidPage并且您的问题仅与布局相关:我的想法是将这些小部件“分组”在面板中,然后自定义这些面板的样式(CSS)。例如,您可以使用网格布局或侧边栏布局。

示例取自这篇文章

library(shiny)
ui <- shinyUI(fluidPage(
  tags$head(tags$style(
    HTML('
         #sidebar, #sidebar2 {
            border: 1px solid black;
        }
        body, label, input, button, select { 
          font-family: "Arial";
        }')
  )),
  titlePanel("Hello Shiny!"),
  fluidRow(
    column(4,
           sidebarLayout(
             sidebarPanel(width = 12, id="sidebar",
                          h5("Pants size"),
                          sliderInput("waist",
                                      "waist:",
                                      min = 1,
                                      max = 50,
                                      value = 30),
                          sliderInput("inseam",
                                      "inseam:",
                                      min = 1,
                                      max = 50,
                                      value = 30)
             ),
             mainPanel( width = 0)
           )
           ),
    column(8,sidebarLayout(
      sidebarPanel(width = 12, id="sidebar2",
                   h5("T-shirt size"),
                   selectInput("waist",
                               "Choose your size:",
                               choices = c("XS","S","M","L","XL")),
                   radioButtons("sex",
                                "sex:",
                                choices = c("unisex","women's"))
      ),
      mainPanel( width = 0)
    ) )
  )
  )
)
server <- shinyServer(function(input, output) {
})
shinyApp(ui=ui,server=server)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此示例中,关键面板有两个 ID,分别称为sidebarsidebar2。此 ID 用于上面的 CSS 部分。在这里阅读有关面板的更多信息:

使用盒子的另一种方法是shinydashboards,在这里阅读更多信息: https: //rstudio.github.io/shinydashboard/struction.html#boxes