radioButton和tabsetPanel在R Shiny中自动更改

时间:2013-07-15 19:11:41

标签: r shiny

我使用闪亮来显示两种方法的结果,A和B.首先我使用radioButtons,以便最终用户可以选择其中一种方法,然后在下拉菜单列表中进一步指定要显示的项目。由于有两种方法,我还考虑使用“标签”(tabsetPanel)。我的问题是,当我点击一个方法的radioButton时,是否有一种方法可以自动切换相应的“tabview”(到所需方法的显示结果)?

谢谢!如果有一个类似于这种情况的工作示例那就太棒了。

1 个答案:

答案 0 :(得分:4)

查看?updateTabsetPanel?conditionalPanel

的帮助

如果您决定采用updateTabsetPanel方法,则可以根据用户输入更改所选标签(直接从帮助中获取):

# in server.R
shinyServer(function(input, output, session) {
    observe({
        # TRUE if input$controller is even, FALSE otherwise.
        x_even <- input$controller %% 2 == 0

        # Change the selected tab.
        # Note that the tabsetPanel must have been created with an 'id' argument
        if (x_even) {
            updateTabsetPanel(session, "inTabset", selected = "panel2")
        } else {
            updateTabsetPanel(session, "inTabset", selected = "panel1")
        }
    })
})

请注意使用session对象和?observe

如果您决定采用conditionalPanel方法:

# in ui.R
selectInput("method", "Method", c("A", "B")),
conditionalPanel(
    condition = "input.method == 'A'",
    plotOutput(...)  # or whatever input/output you want
),
conditionalPanel(
    condition = "input.method == 'B'",
    plotOutput(...)  # or whatever input/output you want
)

我不相信conditionalPanel可以制作条件标签。 (我可能错了)