Convertir un objeto "mapa" en un objeto "SpatialPolygon"

Supongo que hay una solución simple al problema que he estado teniendo, pero estoy teniendo algunos problemas.

Estoy tratando de convertir lo siguientemap objeto:

require(maps)
usa <- map("state")

en unaSpatialPolygon objeto usando elmap2SpatialPolygons función:

require(maptools)
usa.sp <- map2SpatialPolygons(usa, IDs=usa$names,proj4string=CRS("+proj=longlat"))

Sigo recibiendo el siguiente error:

Error in map2SpatialPolygons(usa, IDs = usa$names, proj4string = CRS("+proj=longlat")) : 
  map and IDs differ in length

Después de investigar un poco, parece que las ID tienen una longitud de 63 ymap objeto tiene longitud 169 después de aplicar la función.NAmat2xyList(cbind(map$x, map$y)) (para el cual no puedo encontrar la fuente).

¿Alguien tiene alguna idea? Aquí está la estructura de lausa objeto de mapa:

> 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"

Respuestas a la pregunta(2)

Su respuesta a la pregunta