我正在 Shiny 中制作一个小应用程序,其中包含国家和地区的数据,用户可以在其中选择一个地区。然后的想法是我在应用程序中的传单地图将放大并专注于所选区域(即用户单击“欧洲”并且地图会放大欧洲)。
我不知道应该如何使用简单特征geometry
列作为传单地图的过滤器。这是一个简单的例子(不是在 Shiny 中,但我想这个问题与 Shiny 无关)。
library(rnaturalearth)
library(dplyr)
library(leaflet)
# sf data:
earth <- ne_countries(returnclass = "sf") %>%
select(Region = region_un, geometry)
# little dataset:
df <- data_frame(
Region = c("Europe", "Africa", "Asia", "Oceania", "Americas"),
Score = c(0.85, 0.77, 0.81, 0.93, 0.79)
)
# join:
df <- full_join(df, earth)
# simulate what I'm doing in Shiny:
input <- list()
input$region <- "Europe"
df2 <- filter(df, Region == input$region)
leaflet(df2) %>% addTiles()
这与我使用过的相同df
(未过滤的数据框)。关于如何解决这个问题的任何想法?我在 Shiny/leaflet 文档中找不到它。