Ainsi, la façon habituelle de lire un fichier de formes dans R est via le package maptools, comme ceci:
sfdata <- readShapeSpatial("/path/to/my/shapefile.shp", proj4string=CRS("+proj=longlat"))
Cependant, j'ai un cas d'utilisation où je n'ai pas de shapefile.shp mais à la place j'ai une série de coordonnées de polygone
16.484375 59.736328125,17.4951171875 55.1220703125,24.74609375 55.0341796875,22.5927734375 61.142578125,16.484375 59.736328125
et sa projection correspondante
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
Comment «instancier» des sfdata (qui seront un «objet polygone») directement à partir de ces données? (sans aller de manière détournée pour créer un fichier de formes avec ces données, puis lire à partir du fichier de formes nouvellement créé)
Pour compléter l'excellente réponse de Spacedman dans le cas où vos données contiendraient plusieurs polygones, voici un code utilisant
dplyr
:Juste pour le plaisir, vous pouvez comparer avec l'intrigue obtenue en
ggplot2
utilisant la trame de données initiale:Notez que le code ci-dessus suppose que vous n'avez qu'un seul polyogn par identifiant. Si certains identifiants avaient des polygones disjoints, je suppose que l'on devrait ajouter une autre colonne dans l'ensemble de données, d'abord
group_by
le sous-identifiant, puis utiliser à lagroup_by(upper-id)
place derowwise
Même code en utilisant la
purrr::map
fonction:la source