Entonces, la forma habitual de leer un archivo de formas en R es a través del paquete maptools, de esta manera:
sfdata <- readShapeSpatial("/path/to/my/shapefile.shp", proj4string=CRS("+proj=longlat"))
Sin embargo, tengo un caso de uso por el cual no tengo un shapefile.shp sino que tengo una serie de coordenadas poligonales
16.484375 59.736328125,17.4951171875 55.1220703125,24.74609375 55.0341796875,22.5927734375 61.142578125,16.484375 59.736328125
y su proyección correspondiente
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
¿Cómo "instanciar" sfdata (que será un "objeto de polígono") directamente de estos datos? (sin ir en una forma indirecta de crear un archivo de forma con estos datos y luego leer desde el archivo de forma recién creado)
Para completar la excelente respuesta de Spacedman para el caso donde sus datos contendrían múltiples polígonos, aquí hay un código que usa
dplyr
:Solo por diversión, puede comparar con la trama obtenida con el
ggplot2
uso del marco de datos inicial:Tenga en cuenta que el código anterior asume que solo tiene un polyogn por id. Si algunos identificadores tienen polígonos disjuntos, supongo que uno debería agregar otra columna en el conjunto de datos, primero
group_by
la sub-identificación, luego usegroup_by(upper-id)
lugar derowwise
Mismo código usando la
purrr::map
función:fuente