【发布时间】:2016-06-21 12:08:49
【问题描述】:
我有一个应用程序,它显示按球队和球员组织的 NBA 统计数据数据框。当用户选择一支球队时,将显示该球队最佳球员的统计数据框。当用户选择球员时,显示球员统计数据的数据框。
所有 30 支 NBA 球队都显示在 selectInput 中。选择团队后,不同的 selectInput 提供的选项会显示该团队中某些球员的列表。数据框有一个选项卡,用于显示玩家列表,还有一个选项卡仅显示单个玩家的统计数据。
我怎样才能做到,一旦用户选择了一个播放器,应用就会更新到播放器标签?我目前对 observeEvent 所做的事情不起作用。我尝试使用带有 input$var1 的观察,但我收到“参数长度为零”错误。
在此处查看标签,https://binlee.shinyapps.io/test_app/
# ui.R
shinyUI(fluidPage(
titlePanel("My App"),
sidebarLayout(
sidebarPanel(
uiOutput("teamInput")
, uiOutput("playerInput")),
mainPanel(
tabsetPanel(
tabPanel("Team", tableOutput("table")),
tabPanel("Player", tableOutput("table1"),
id = "panelTabs")
)))))
df <- read.csv("data.csv", header = TRUE, stringsAsFactors = FALSE)
# server.R
shinyServer(
function(input, output, session)
{output$teamInput <- renderUI({selectInput("var",
label = "Choose Team",
choices = c(unique(df$Team)),
selected = "unique(df$Team)")})
output$table <- renderTable({df[df$Team == input$var,4:14]})
output$playerInput <- renderUI({selectInput("var1",
label = "Choose Player",
choices = df[df$Team == input$var, 4])})
observeEvent(input$var1,
{updateTabsetPanel(session, inputId="panelTabs", selected="Player")})
output$table1 <- renderTable({df[df$Name == input$var1, 4:14]})
})
【问题讨论】:
标签: r shiny-server shiny