Are tabs with their own sidebars and mainPanels possible in shiny?
r, shiny
Solution
If I do not misunderstand your question, I think you can even evade the jQuery part (from @f1r3br4nd answer) by supplying an id for the `tabsetPanel` function, here `id = "conditionedPanels"`. The `value` parameter (i.e. which tab is selected in the main panel) is then available via the `input` variable.
A minmal example: `server.R` may be empty except for the shinyServer function skeleton. The `ui.R` file might be as follows.
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"
)
)
))
Problem
I would like to display different inputs for different tabs. So I tried to build a page with several tabPanels. However, I can't have sth like below: ``` 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") ) ) ) )) ``` I suspect that the `pageWithSidebar` is causing the problem, but I couldn't find an alternative in google groups. Is there a way to display several tabs with their own sidebars and mainPanels, or shall I create different apps for this purpose?