Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 转换一个;“地图”;反对;“空间多边形”;对象_R_Maps_Maptools_Sp - Fatal编程技术网

R 转换一个;“地图”;反对;“空间多边形”;对象

R 转换一个;“地图”;反对;“空间多边形”;对象,r,maps,maptools,sp,R,Maps,Maptools,Sp,我猜我遇到的问题有一个简单的解决方案,但我遇到了一些麻烦 我正在尝试转换以下map对象: require(maps) usa <- map("state") 我不断得到以下错误: Error in map2SpatialPolygons(usa, IDs = usa$names, proj4string = CRS("+proj=longlat")) : map and IDs differ in length 经过一些研究,在应用函数.NAmat2xyList(cbind(ma

我猜我遇到的问题有一个简单的解决方案,但我遇到了一些麻烦

我正在尝试转换以下
map
对象:

require(maps)
usa <- map("state")
我不断得到以下错误:

Error in map2SpatialPolygons(usa, IDs = usa$names, proj4string = CRS("+proj=longlat")) : 
  map and IDs differ in length
经过一些研究,在应用函数
.NAmat2xyList(cbind(map$x,map$y))
之后,看起来ID的长度为63,
map
对象的长度为169

有人有什么想法吗?以下是
usa
地图对象的结构:

> str(usa)
List of 4
 $ x    : num [1:1705] -88.4 -88.1 -88 -87.9 -87.8 ...
 $ y    : num [1:1705] 30.4 30.4 30.8 30.6 30.3 ...
 $ range: num [1:4] -124.7 -67 25.1 49.4
 $ names: chr [1:63] "alabama" "arizona" "arkansas" "california" ...
 - attr(*, "class")= chr "map"

刚刚在文本“应用R进行空间数据分析”中找到一些代码。它工作得很好

require(maps)
usa <- map("state", fill = TRUE)

require(sp)
require(maptools)
IDs <- sapply(strsplit(usa$names, ":"), function(x) x[1])
usa <- map2SpatialPolygons(usa, IDs=IDs, proj4string=CRS("+proj=longlat +datum=WGS84"))
require(地图)
美国多边形具有曲面(面积),因此关键参数为
fill=TRUE
in

usa <- map('state', fill = TRUE)

usa+1大积分。如果?map引用指定“fill”参数具有这种下游效应,这将非常有用。当前的书写方式(版本2.3-11)看起来似乎只影响地图在屏幕上的绘制方式。当通过指定世界数据库使用地图并通过国家的地区名称访问国家时,可以通过更一般的方式访问地区:德国
usa <- map('state', fill = TRUE)