我正在尝试使用传单制作一个choropleth。我从data.gov下载了ZCTAs的shapefile,并通过readOGR将其导入到R中。然后,将文件通过管道传送到传单时,什么也没有发生。
我认为问题可能是来自shapefile的经纬度是作为因子而不是数字导入的?除非我尝试将这些变量转换为数字,否则返回错误:
`$ <-。data.frame`(`* tmp *',lat,value = numeric(0))错误: 替换有0行,数据有33144
另一方面,这只是一个猜测,我对传单和地图绘制是全新的;我还在学习哪种方式。
这是我的代码:
shape <- readOGR(dsn = path.expand("//cifs2/radonfin$/MaxG/In Progress/Geographical Capture/Shape Files"),
layer = "tl_2018_us_zcta510")
shape@data$GEOID10 = as.numeric(as.character(shape@data$GEOID10))
colnames(shp_Patients_by_ZCTA)[colnames(shp_Patients_by_ZCTA)=="INTPTLAT10"] <- "lat"
colnames(shp_Patients_by_ZCTA)[colnames(shp_Patients_by_ZCTA)=="INTPTLON10"] <- "lng"
shape %>%
leaflet(options = leafletOptions( minZoom = 8,
maxZoom = 12,
dragging = TRUE)) %>%
addProviderTiles("CartoDB.PositronNoLabels", group = "Light Mode") %>%
addProviderTiles("CartoDB.DarkMatterNoLabels", group = "Dark Mode") %>%
addPolygons() %>%
setView(lng = -71.808206, lat = 42.016621, zoom = 8) %>%
setMaxBounds(lng1 = -73.561893,
lat1 = 42.855596,
lng2 = -69.889730,
lat2 = 41.001180) %>%
addMarkers(data = Hospital_Locations,
lat = Hospital_Locations$Latitude,
lng = Hospital_Locations$Longitude,
label = Hospital_Locations$Location) %>%
addLayersControl(baseGroups = c("Light Mode", "Dark Mode"),
overlayGroups = c("Boston", "Mansfield", "Milford", "Saint Anne's"))
我的预期结果是一个包含shapefile描述的多边形的传单地图,但实际结果是:
将lat
和lon
转换为数字时出现错误;或者,如果我跳过了
R冻结直到我停止代码。
我非常感谢您可以提供的任何帮助!