带有自己的侧边栏和主面板的标签是否有光泽?

bar*_*erd 24 r rstudio shiny

我想为不同的标签显示不同的输入.所以我尝试构建一个包含多个tabPanel的页面.但是,我不能像下面这样:

library(shiny)

shinyUI(pageWithSidebar(
  headerPanel("Header"),

  tabsetPanel(
    tabPanel(
      headerPanel("Tab 1"),
      sidebarPanel(
        selectInput("var", "Parametre", choices = c("1", "2", "3"))
        ),
      mainPanel(
        textOutput("text1")
        )
      ),
    tabPanel(
      headerPanel("Tab 2"),
      sidebarPanel(
        selectInput("var", "Parametre", choices = c("21", "22", "23"))
      ),
      mainPanel(
        textOutput("text2")
      )
    )
    )
  ))
Run Code Online (Sandbox Code Playgroud)

我怀疑这pageWithSidebar是导致问题的原因,但我无法在Google群组中找到替代方案.有没有办法用自己的侧边栏和主面板显示多个标签,还是应该为此创建不同的应用程序?

Mar*_*ann 24

如果我没有误解你的问题,我认为你甚至可以通过提供tabsetPanel函数的id来逃避jQuery部分(来自@ f1r3br4nd答案)id = "conditionedPanels".的value(在主面板中选择哪个选项卡IE)的参数是随后经由可用的input变量.

最简单的示例:server.R除了shinyServer函数框架外,它可能是空的.该ui.R文件可能如下.

shinyUI(pageWithSidebar(
  headerPanel("Conditional Panels"),
  sidebarPanel(
    conditionalPanel(condition="input.conditionedPanels==1",
                     helpText("Content Panel 1")
    ),
    conditionalPanel(condition="input.conditionedPanels==2",
                     helpText("Content Panel 2")
    ) 
  ),
  mainPanel(
    tabsetPanel(
      tabPanel("Panel 1", value=1), 
      tabPanel("Panel 2", value=2)
      , id = "conditionedPanels"
    )
  )
))
Run Code Online (Sandbox Code Playgroud)


bok*_*kov 10

我得到了我的工作,只有一个sidebarPanel喜欢在Shiny示例应用程序,但然后包装的东西sidebarPanel只在这里的单独conditionalPanel调用中的特定选项卡.然后诀窍是使作为条件参数的字符串成为一个jQuery语句,该语句查看当前所选选项卡的属性,并将其显示在侧边栏中应显示此选项的选项卡的名称:conditionalPanelhtml===

conditionalPanel(
    "$('li.active a').first().html()==='Foo'",
    actionButton("bar","Bar"));
Run Code Online (Sandbox Code Playgroud)

... Foo标签的标题在哪里.

简而言之,一个侧边栏但其内容以活动标签为条件.

  • 感谢您以及我通过您的个人资料阅读的关于R的其他一些答案. (2认同)