如何在Shiny

时间:2016-04-28 12:40:54

标签: r shiny

我试图在简单的Shiny应用程序中动态选择一个specic tabPanel。 app的脚本如下:

ui.r

library(shiny)
shinyUI(fluidPage(

  titlePanel("SCORE CARD DEVELOPMENT PLATFORM"),
    navbarPage("ScoreDevApp",
         tabPanel("Settings",
                  fluidRow(column(2,
                                  actionButton("goButton_service", "Load   saved parameters",width=200)
                                  )
                          )
         ),
         tabPanel("Download & Binning input data")
        )
)
)

server.r

library(shiny)

shinyServer(function(input, output, session) {
  #load saved parameters 
  observeEvent(input$goButton_service, {
    updateTabsetPanel(session, "ScoreDevApp", selected = "Download & Binning  input data")
 })  
})  

我们的想法是按下按钮“goButton_service”,然后选择tabPanel “下载和分箱输入数据”

我使用了这里的例子R Shiny switch tabPanel when selectInput value changes

但是未选中tabPanel。我非常感谢你的帮助: - )

1 个答案:

答案 0 :(得分:3)

问题是您的UI中没有tabsetPanel(应该是两个tabPanel的父级)。目前您使用的是updateTabsetPanel,但目标是navbarPage

下面的工作解决方案。有两个问题:navbarPage需要一个id,而且server.R selected中有一个额外的空格(在Binning和input之间)

ui.R

library(shiny)
shinyUI(fluidPage(

    titlePanel("SCORE CARD DEVELOPMENT PLATFORM"),
    navbarPage("ScoreDevApp",
               tabPanel("Settings",
                        fluidRow(column(2,
                                        actionButton("goButton_service", "Load   saved parameters",width=200)
                        )
                        )
               ),
               tabPanel("Download & Binning input data"),
               id="ScoreDevApp"
    )
)
)

server.R

库(有光泽)

shinyServer(function(input, output, session) {
    #load saved parameters 
    observeEvent(input$goButton_service, {
        updateNavbarPage(session, "ScoreDevApp", selected = "Download & Binning input data")
    })  
})