小编use*_*026的帖子

R:map2SpatialPolygons中的ID

我试图map2SpatialPolygons在显示美国国家子集的地图中创建核密度图.我一直收到一条错误,说"地图和身份证的长度不同".

我知道这段代码有效(来自map2SpatialPolygons的帮助):

nor_coast_poly <- map("world", "norway", fill=TRUE, col="transparent", plot=FALSE, ylim=c(58,72))
IDs <- sapply(strsplit(nor_coast_poly$names, ":"), function(x) x[1])
nor_coast_poly_sp <- map2SpatialPolygons(nor_coast_poly, IDs=IDs, proj4string=CRS("+proj=longlat +datum=wgs84"))
Run Code Online (Sandbox Code Playgroud)

此代码也有效(映射整个美国时):

usmap <- map('usa', fill=TRUE, col="transparent", resolution=0, plot=FALSE)
uspoly <- map2SpatialPolygons(usmap, IDs=usmap$names, proj4string=CRS("+proj=longlat +datum=WGS84"))
Run Code Online (Sandbox Code Playgroud)

但是这段代码没有:

states.to.plot=c("illinois", "indiana", "ohio")
dmap<-map("state", regions=states.to.plot, col="transparent", plot=FALSE)
dpoly <- map2SpatialPolygons(dmap, IDs=dmap$names, proj4string=CRS("+proj=longlat +datum=WGS84"))
Run Code Online (Sandbox Code Playgroud)

它抛出错误:

Error in map2SpatialPolygons(dmap, IDs = dmap$names, proj4string = CRS("+proj=longlat +datum=WGS84")) :
    map and IDs differ in length
Run Code Online (Sandbox Code Playgroud)

使用map("状态"...)时如何正确识别ID?

r geospatial

4
推荐指数
1
解决办法
1000
查看次数

标签 统计

geospatial ×1

r ×1