Portanto, a maneira usual de ler um shapefile no R é através do pacote maptools, assim:
sfdata <- readShapeSpatial("/path/to/my/shapefile.shp", proj4string=CRS("+proj=longlat"))
No entanto, tenho um caso de uso em que não tenho um shapefile.shp, mas tenho uma série de coordenadas poligonais
16.484375 59.736328125,17.4951171875 55.1220703125,24.74609375 55.0341796875,22.5927734375 61.142578125,16.484375 59.736328125
e sua projeção correspondente
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
Como instanciar sfdata (que será um "objeto de polígono") diretamente desses dados? (sem seguir uma maneira indireta de criar um shapefile com esses dados e depois ler o shapefile recém-criado)
Para concluir a excelente resposta de Spacedman para o caso em que seus dados conteriam vários polígonos, aqui está um código usando
dplyr
:Apenas por diversão, você pode comparar com o gráfico obtido com o
ggplot2
uso do quadro de dados inicial:Observe que o código acima pressupõe que você tenha apenas um polognio por ID. Se alguns IDs tiverem polígonos separados, acho que se deve adicionar outra coluna no conjunto de dados, primeiro
group_by
o sub-ID e, em seguida, use emgroup_by(upper-id)
vez derowwise
O mesmo código usando a
purrr::map
função:fonte