Quand on lit un fichier shp ou fichier shapefile, on lit un fichier de cartographie de type vecteur. On utilisera le package {sf} pour lire ces fichiers de carte. En réalité, une couche spatiale au format shapefile doit être distribuée avec au minimum 4 fichiers du même nom, avec les extension shp, shx, dbf, prj. Sans ces 4 fichiers, vous ne pourrez probablement pas afficher votre carte correctement.

Regardons les fichiers inclus dans le package {sf} , vous remarquerez qu’ils viennent tous par 4 :

list.files(system.file("shape", package="sf"))
[1] "nc.dbf" "nc.prj" 
[3] "nc.shp" "nc.shx"
[5] "olinda1.dbf" "olinda1.prj"
[7] "olinda1.shp" "olinda1.shx"
[9] "storms_xyz_feature.dbf" "storms_xyz_feature.shp"
[11] "storms_xyz_feature.shx" "storms_xyz.dbf"
[13] "storms_xyz.shp" "storms_xyz.shx"
[15] "storms_xyzm_feature.dbf" "storms_xyzm_feature.shp"
[17] "storms_xyzm_feature.shx" "storms_xyzm.dbf"
[19] "storms_xyzm.shp" "storms_xyzm.shx"

Voici comment on lirait les fichiers nommés nc.* s’ils étaient dans le même dossier que notre script R. En réalité, on ne lit que le fichier nommé nc.shp, les autres sont lus en même temps par la fonction st_read() :

nc <- st_read("nc.shp")

Ensuite, vous pourrez directement afficher la carte avec la méthode plot() :

plot(nc)

Pour tester sur votre ordinateur un exemple reproductible, vous pouvez tester ce script :

library(sf)
nc = st_read(system.file("shape/nc.shp", package="sf"))
plot(nc)