用于显示 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)
})
}
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)
})
}