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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager