Bonjour,
Je rencontre parfois des objets R qui comportent des sous-données, accessibles via l'opérateur @ (arobase).
Quelqu'un connaîtrait-il une doc pour comprendre ce que sont ces objets et comment savoir ce qu'ils contiennent ?








Bonjour,
Je rencontre parfois des objets R qui comportent des sous-données, accessibles via l'opérateur @ (arobase).
Quelqu'un connaîtrait-il une doc pour comprendre ce que sont ces objets et comment savoir ce qu'ils contiennent ?








Je viens de trouver un élément de réponse.
Pour savoir ce qu'ils contiennent, il suffit de faire head(Objet).








Bonjour,
Sous R il y a deux systèmes d’accession d’objet ou de représentation des données :
- les classes S3 pour lesquelles on accède aux éléments avec l’opérateur $
- les classes S4 pour lesquelles on accède aux éléments appelés « slots » avec l’opérateur @
Vous pouvez utiliser la commande str() qui renvoie la structure de tout objet quelle que soit sa classe :
Ensuite vous pouvez accéder à tout élément de l'objet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 > communes <- readShapeSpatial("shp/58-.shp") > str(communes) Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots ..@ data :'data.frame': 312 obs. of 18 variables: .. ..$ ID_GEOFLA : int [1:312] 149 166 295 296 300 361 465 466 522 638 ... .. ..$ CODE_COMM : Factor w/ 312 levels "001","002","003",..: 237 289 103 55 274 181 97 126 40 266 ... .. ..$ INSEE_COM : Factor w/ 312 levels "58001","58002",..: 237 289 103 55 274 181 97 126 40 266 ... .. ..$ NOM_COMM : Factor w/ 312 levels "ACHUN","ALLIGNY-COSNE",..: 236 289 98 53 274 182 92 120 40 264 ... .. ..$ STATUT : Factor w/ 4 levels "Chef-lieu canton",..: 2 2 1 2 2 1 2 2 2 1 ... .. ..$ X_CHF_LIEU: int [1:312] 7167 7540 7269 7389 7370 7615 7493 7276 7528 7388 ... .. ..$ Y_CHF_LIEU: int [1:312] 66534 66387 66239 66379 66621 66544 66908 66801 66565 66673 ... .. ..$ X_CENTROID: int [1:312] 7168 7543 7257 7398 7369 7617 7485 7255 7537 7394 ... .. ..$ Y_CENTROID: int [1:312] 66544 66390 66244 66393 66618 66528 66911 66794 66573 66669 ... .. ..$ Z_MOYEN : int [1:312] 201 221 238 217 288 267 187 304 232 303 ... .. ..$ SUPERFICIE: int [1:312] 1644 2023 4004 4637 1864 4134 963 2378 1612 2618 ... .. ..$ POPULATION: num [1:312] 2 0.1 1.3 0.8 0.3 1.7 0.1 0.2 0.2 0.9 ... .. ..$ CODE_CANT : Factor w/ 33 levels "01","02","03",..: 28 11 10 8 22 15 23 18 4 22 ... .. ..$ CODE_ARR : Factor w/ 4 levels "1","2","3","4": 3 1 3 3 3 1 2 4 1 3 ... .. ..$ CODE_DEPT : Factor w/ 1 level "58": 1 1 1 1 1 1 1 1 1 1 ... .. ..$ NOM_DEPT : Factor w/ 1 level "NIEVRE": 1 1 1 1 1 1 1 1 1 1 ... .. ..$ CODE_REG : Factor w/ 1 level "26": 1 1 1 1 1 1 1 1 1 1 ... .. ..$ NOM_REGION: Factor w/ 1 level "BOURGOGNE": 1 1 1 1 1 1 1 1 1 1 ... .. ..- attr(*, "data_types")= chr [1:18] "N" "C" "C" "C" ... ..@ polygons :List of 312 ...
Vous pouvez aussi utiliser la commande slotNames() pour obtenir la liste des slots d'un objet de classe S4 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 > head(communes@data$NOM_COMM) [1] SAINT-ELOI THAIX DORNES CHAMPVERT SAXI-BOURDON MOULINS-ENGILBERT 312 Levels: ACHUN ALLIGNY-COSNE ALLIGNY-EN-MORVAN ALLUY AMAZY ANLEZY ANNAY ANTHIEN ARBOURSE ARLEUF ARMES ARQUIAN ... VITRY-LACHE
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 > slotNames(communes) [1] "data" "polygons" "plotOrder" "bbox" "proj4string"








S3, S4
Il va vraiment falloir que j'approfondisse ces langages.
Merci Mgdondon
Partager