Sélection par attributs
Les objets sf
sont des data.frame
, on peut donc sélectionner leur lignes et leur colonnes de la même manière que les data.frame
.
# sélection de lignes
com[1 : 2 , ]
#> Simple feature collection with 2 features and 12 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 557759.2 ymin: 6371852 xmax: 607179 ymax: 6410204
#> Projected CRS: RGF93 v1 / Lambert-93
#> INSEE_COM NOM_COM STATUT POPULATION AGR_H AGR_F IND_H IND_F
#> 1 46001 Albas Commune simple 522 4.978581 0.000000 4.936153 0
#> 2 46002 Albiac Commune simple 67 0.000000 9.589041 0.000000 0
#> BTP_H BTP_F TER_H TER_F geom
#> 1 9.957527 0 44.917145 34.681799 MULTIPOLYGON (((559262 6371...
#> 2 4.794521 0 4.794521 9.589041 MULTIPOLYGON (((605540.7 64...
com[com$ NOM_COM == "Gramat" , ]
#> Simple feature collection with 1 feature and 12 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 593605.6 ymin: 6402330 xmax: 602624.6 ymax: 6413784
#> Projected CRS: RGF93 v1 / Lambert-93
#> INSEE_COM NOM_COM STATUT POPULATION AGR_H AGR_F IND_H
#> 119 46128 Gramat Commune simple 3468 10.19868 15.29802 122.3842
#> IND_F BTP_H BTP_F TER_H TER_F geom
#> 119 107.0862 56.09275 0 260.0664 304.1941 MULTIPOLYGON (((594713.1 64...
# sélection de colonnes
com[, "POPULATION" ]
#> Simple feature collection with 313 features and 1 field
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 539668.5 ymin: 6346290 xmax: 637380.9 ymax: 6439668
#> Projected CRS: RGF93 v1 / Lambert-93
#> First 10 features:
#> POPULATION geom
#> 1 522 MULTIPOLYGON (((559262 6371...
#> 2 67 MULTIPOLYGON (((605540.7 64...
#> 3 706 MULTIPOLYGON (((593707.7 64...
#> 4 219 MULTIPOLYGON (((613211.3 64...
#> 5 329 MULTIPOLYGON (((556744.9 63...
#> 6 377 MULTIPOLYGON (((576667.2 64...
#> 7 988 MULTIPOLYGON (((581404 6370...
#> 8 203 MULTIPOLYGON (((558216 6389...
#> 9 642 MULTIPOLYGON (((612729.6 63...
#> 10 367 MULTIPOLYGON (((581404 6370...
com[com$ NOM_COM == "Gramat" , 1 : 4 ]
#> Simple feature collection with 1 feature and 4 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 593605.6 ymin: 6402330 xmax: 602624.6 ymax: 6413784
#> Projected CRS: RGF93 v1 / Lambert-93
#> INSEE_COM NOM_COM STATUT POPULATION geom
#> 119 46128 Gramat Commune simple 3468 MULTIPOLYGON (((594713.1 64...
Jointure attributaire
Nous pouvons joindre un data.frame
à un objet sf
en utilisant la fonction merge()
et en s’appuyant sur des identifiants communs aux deux objets.
Attention à l’ordre des arguments, l’objet retourné sera du même type que x
. Il n’est pas possible de faire une jointure attributaire en utilisant deux objets sf
.
# import de données supplémentaires
com_df <- read.csv (file = "data/com.csv" )
# des identifiants en commun?
names (com_df)
#> [1] "INSEE_COM" "ACT" "IND" "SACT" "SACT_IND"
#> [1] "INSEE_COM" "NOM_COM" "STATUT" "POPULATION" "AGR_H"
#> [6] "AGR_F" "IND_H" "IND_F" "BTP_H" "BTP_F"
#> [11] "TER_H" "TER_F" "geom"
# jointure attributaire
com_final <- merge (
x = com, # l'objet sf
y = com_df, # le data.frame
by.x = "INSEE_COM" , # identifiant dans x
by.y = "INSEE_COM" , # identifiant dans y
all.x = TRUE # conserver toutes les lignes
)
# Les deux objets ont bien été joints
head (com_final, 3 )
#> Simple feature collection with 3 features and 16 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 557759.2 ymin: 6371852 xmax: 607179 ymax: 6418606
#> Projected CRS: RGF93 v1 / Lambert-93
#> INSEE_COM NOM_COM STATUT POPULATION AGR_H AGR_F IND_H
#> 1 46001 Albas Commune simple 522 4.978581 0.000000 4.936153
#> 2 46002 Albiac Commune simple 67 0.000000 9.589041 0.000000
#> 3 46003 Alvignac Commune simple 706 10.419682 0.000000 10.419682
#> IND_F BTP_H BTP_F TER_H TER_F ACT IND SACT
#> 1 0.000000 9.957527 0 44.917145 34.681799 99.47120 4.936153 19.05579
#> 2 0.000000 4.794521 0 4.794521 9.589041 28.76712 0.000000 42.93600
#> 3 5.209841 10.419682 0 57.308249 78.147612 171.92475 15.629522 24.35195
#> SACT_IND geom
#> 1 4.962393 MULTIPOLYGON (((559262 6371...
#> 2 0.000000 MULTIPOLYGON (((605540.7 64...
#> 3 9.090909 MULTIPOLYGON (((593707.7 64...
Exercice
Importer la couche des communes du département du Lot à partir du fichier geopackage lot.gpkg .
Importer le fichier com.csv .
Ce jeu de données porte sur les communes du Lot et contient plusieurs variables supplémentaires:
le nombre d’actifs (ACT ).
le nombre d’actifs dans l’industrie (IND )
la part des actifs dans la population totale (SACT )
la part des actifs dans l’industrie dans le total des actifs (SACT_IND )
Joindre le jeu de données et la couche des communes.
Sélectionnez les communes du Lot ayant plus de 500 actifs et dont la part des actifs dans la population totale est supérieure à 30%.
Affichez toutes les communes en gris et les communes sélectionnées en rouge.