2013-07-15 3 views
1

Я использую блестящий, чтобы отображать результаты двух методов, A и B. Сначала я использую radioButtons, чтобы конечные пользователи могли выбрать один из методов, а затем дополнительно указать в списке в раскрывающемся меню выберите элемент для отображения. Поскольку есть два метода, я также рассматриваю использование «вкладок» (tabsetPanel). Мой вопрос в том, что существует ли способ, когда я нажимаю radioButton метода, тогда соответствующее «табуляция» автоматически переключается (на результат отображения желаемого метода)?radioButton и tabsetPanel автоматически меняются в R Shiny

Спасибо! Если есть рабочий пример, похожий на эту ситуацию, это было бы здорово.

ответ

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 работы, чтобы сделать условные вкладки, хотя. (Я мог ошибаться об этом)