从R&R Shiny中的SQL查询创建下拉列表

时间:2019-10-22 15:00:44

标签: r shiny

我是R和R Shiny的新手,但是我有一个SQL查询运行到R Shiny仪表板中。我需要使用来自该查询的数据来获得一个独特的美国州列表,该列表填充仪表板主体中选项卡上的下拉框。

我已经提取了到目前为止可以尝试创建的部分代码,但目前运气不佳。我想知道我是否要使用正确的方法?

为此,State_data DF是SQL查询的输出,我只需要提取状态列表即可。

预先感谢

    ui <- dashboardPage(    

    tabPanel("State Level Detail",
                      fluidRow(
                          box(tableOutput("State_tbl")),
                          box(uiOutput("States_List"), plotlyOutput("State_Map"), plotlyOutput("State_Chart")))    

)
    server <- shinyServer(function(input, output, session){

          output$States_List <- renderUI({
            selectInput("STATE", "Select State", choices=States_List(), width = 350)
          })

              output$States_List <-

                renderTable({

                  validate(
                    need(State_data(),""))

                  States_List <- State_data[c("STATE")]

                })

        })

        shinyApp(ui, server)

使用上述语法时出现的主要错误是:

Warning: Error in $: object of type 'closure' is not subsettable

1 个答案:

答案 0 :(得分:1)

这是一个简单的解决方案,用于获取从文件中读取的状态名称或其他任何内容的下拉列表。我需要模拟读取您的文件。

ui <- fluidPage(      
  tabPanel("State Level Detail",
           fluidRow(
             selectInput("stateAbbr", "Select State:",'')        
)))

server <- shinyServer(function(input, output, session){
  # Simulate reading of state abbreviations  
  statesList <- data.frame (abbr='AK',stringsAsFactors=FALSE)
  statesList <- rbind(statesList,'AL')
  statesList <- rbind(statesList,'AR')

  # Set up the selection for states
  selectionStateAbbr <- sort(unique(unlist(statesList$abbr)))
  updateSelectInput(session, "stateAbbr", choices = selectionStateAbbr)  
})

shinyApp(ui, server)