web-dev-qa-db-ja.com

R Shinyの入力としてtabPanelを使用する方法

ユーザーが特定のtabPanelをクリックした場合にアクションを実行できますか?

たとえば、ユーザーがtabPanel("A", ...)をクリックすると、You are viewing tab "A"

35
mchen

tabsetPanel()は、アクティブなtabPanel()に割り当てられた値を返します。別の出力を更新するだけの場合は、次のようにすることができます。

ui.R

library(shiny)    

shinyUI(basicPage( 

  textOutput("text"),
      tabsetPanel(id = "tabs",
          tabPanel("Tab A", value = "A", "This is Tab A content"),
          tabPanel("Tab B", value = "B", "Here's some content for tab B.")
  )

))

server.R

library(shiny)

shinyServer(function(input, output) {

    output$text <- renderText({paste0("You are viewing tab \"", input$tabs, "\"")})

})

しかし、ポップアップを作成するようなもっと複雑なものは、おそらくオブザーバーといくつかの追加のカスタムコーディングを作成する必要があります...

31
Eric

光沢のあるダッシュボードを使用している場合は、input$tabBox_idはアクティブなタブ名を見つけます。ここを参照してください: https://rstudio.github.io/shinydashboard/structure.html#tabbox

3
StatCC