我是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
答案 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)