Удалить неиспользуемый GEOID в geo_join
Я пытаюсь построить прибыльность на вершине округов в Миннесоте, Айове и Небраске. С помощью leaflet
а также tigris
Я смог построить ВСЕ графства, есть ли у меня данные для этого. Это оставляет меня с несколькими округами с цветами, а остальные помечены как NA. Есть ли способ для меня, чтобы удалить все АН из моего geo_join
данные, так что он просто не используется аля неиспользуемые районы Висконсина? Я пытался использовать fortify
, но я не могу понять, как определить границы округов, на которые я смотрю, когда объединяю границы TIGER с моим файлом FIPS округа, чтобы удалить их.
Вот то, что мой leaflet
на данный момент выглядит так:
Мой код для получения карты:
library(tigris)
library(leaflet)
pal <- colorNumeric(c("yellow","dark red"),county$Construction.Cost,na.color="white")
IA_counties <- counties(state="IA", cb=TRUE, resolution ="20m")
MN_counties <- counties(state="MN",cb=TRUE,resolution="20m")
NE_counties <- counties(state="NE",cb=TRUE,resolution="20m")
IA_merged <- geo_join(IA_counties,county,"GEOID", "GEOID")
MN_merged <- geo_join(MN_counties,county,"GEOID","GEOID")
NE_merged <- geo_join(NE_counties,county,"GEOID","GEOID")
popupIA <- paste0("County Projects: ", as.character(paste('$',formatC(format(round(IA_merged$Construction.Cost, 0), big.mark=',', format = 'f')))))
popupMN <- paste0("County Projects: ", as.character(paste('$',formatC(format(round(MN_merged$Construction.Cost, 0), big.mark=',', format = 'f')))))
popupNE <- paste0("County Projects: ", as.character(paste('$',formatC(format(round(NE_merged$Construction.Cost, 0), big.mark=',', format = 'f')))))
leaflet() %>%
addProviderTiles("MapQuestOpen.OSM") %>%
addLegend(pal = pal,
values = IA_merged$Construction.Cost,
position = "bottomright",
title = "County Projects",
labFormat=labelFormat(prefix="$")) %>%
addCircles(lng=yup2$lon, lat=yup2$lat,weight=.75,fillOpacity=0.01,color="red",
radius = 96560) %>%
addCircles(lng=yup2$lon, lat=yup2$lat,weight=.75,fillOpacity=0.01,color="blue",
radius = 193121) %>%
addPolygons(data = IA_counties,
fillColor = ~pal(IA_merged$Construction.Cost),
layerId=1,
fillOpacity = .25,
weight = 0.05,
popup = popupIA)%>%
addPolygons(data=MN_counties,
fillColor=~pal(MN_merged$Construction.Cost),
fillOpacity=0.25,
weight=0.05,
popup = popupMN) %>%
addPolygons(data=NE_counties,
fillColor=~pal(NE_merged$Construction.Cost),
fillOpacity=0.25,
weight=0.05,
popup = popupNE)
Я прошу прощения за то, что не включил воспроизводимые данные, но при необходимости, пожалуйста, спросите. Я надеюсь, что это более простой na.color=
формула решения. Карта выглядит "хорошо" на данный момент, но я бы хотел, чтобы было возможно fillOpacity
настолько легкие, чтобы округа АН не выделялись.
Спасибо за любую помощь и, пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы!
2 ответа
Так что, смущающе, ответ на этот вопрос был настолько прост, насколько я надеялся. Я подправил следующее na.color
код, и он работал именно так, как я хотел.
pal <- colorNumeric(c("yellow","dark red"),county$Construction.Cost,na.color="transparent")
Я создатель tigris
пакет. Большое спасибо за использование! В разрабатываемой версии tigris
на GitHub ( https://github.com/walkerke/tigris) я добавил опцию geo_join
для размещения внутренних объединений, которые полностью удаляют несопоставленные данные из результирующего фрейма пространственных данных (если это то, что вы ищете). Вы также можете указать общее имя столбца слияния в качестве именованного аргумента для нового by
параметр, если вы хотите. Например:
IA_merged <- geo_join(IA_counties, county, by = "GEOID", how = "inner")
должно сработать. Я все еще тестирую, но, вероятно, отправлю это обновление в CRAN в январе.