用于显示 shapefile 的 R Shiny Leaflet Selector

R Shiny Leaflet Selector for shapefile to be displayed

R shiny 的新手,shapefile 的新手,数据之外的任何编码的新手 cleansing/analysis。

我想在地图上显示我所在州的哪些特定服务可用。 我有我所在州邮政编码 (zipcodes) 的 shapefile。我有一个 csv 文件,用于 14 种不同类型的政府服务,可用于邮政编码。

CSV 的形状是为每项可用服务分配一条新线路(即,如果该郊区有 3 项服务可用,则将有 3 条线路都具有相同的邮政编码)。

我从 CSV 中拆分出 14 个数据帧,每个服务类型一个。我已经为其中的每一个与邮政编码 shapefile 进行了内部连接。我有 14 个数据框,这些数据框仅针对提供服务的郊区具有空间多边形。

我使用代码类型为郊区制作了弹出式标签:

serviceA$label <- with(serviceA, paste (serviceA$town_name, serviceA$more_info))

我分别为 14 种服务类型(serviceB、serviceC 等)中的每一种做了此操作,这些服务类型看起来并不优雅,但可以正常工作。

现在,我不知道该怎么做。如何使用选择器选择我感兴趣的服务并只显示该地图?

我找到了选择性添加标记等的示例,但我无法弄清楚如何使用选择器来选择仅包含感兴趣的 shapefile 的每个数据框。如果我一开始就设置不正确,请告诉我。

我试过的是:

ui <- fluidPage(selectInput(inputId = "Selector", label ="Type of Support", choices = c(
    'Service A', .....), leafletOutput("mymap"))

server <- function(input, output) {
  
  output$mymap <- renderLeaflet({
    **leaflet(input$Selector)** %>% 
      
      addPolygons(popup = ~label, weight = 1)})
}  

shinyApp(ui, server)

如果我将粗体部分 leflet(input$Selector) 替换为 leaflet(serviceA),我可以使地图正确显示(但不是根据实际输入选择),所以我认为我的部分代码是错误的但我找不到正确的语法,或者你是否不能将选择器的结果放在这个地方(对于分析科学数据之外的一切都是全新的,所以我可能误解了 ui 和服务器零件可以做什么?)。

感谢您的任何建议:-)

您需要创建一个反应式表达式才能检索使用 input$Selector 选择的数据集。使用 get 搜索具有给定名称的对象,在本例中为 input$Selector 提供的对象。

server <- function(input, output) {

          df <- reactive({ 
                 get(input$Selector) 
                }) 

         output$mymap <- renderLeaflet({
                # df its updated everytime input$Selector changes
                leaflet(df()) %>% 
                addPolygons(popup = ~label, weight = 1)
                })
}