Version 10 (modified by cedric, 15 years ago) (diff) |
---|
Descritption de la structure des objets R a partir des Bilans Migration
Grace à la console R, vous effectuer un Bilan Migration
Dans la boite de dialogue d'EDA il y a des informations qui apparaissent notamment
TODO lien a effectuer avec Bilan Migration
- bilanMigration=get('bilanMigration',envir_stacomi)
- tableau=get('tableau',envir_stacomi)
L'objet BilanMigration et le dataframe tableau sont des éléments générés par R au cours des traitements Pour les utiliser, dans la console R tapper deux lignes tour à tour, cette commande ne renvoit rien elle assigne à l'objet de gauche (ie bilanMigration) la valeur de l'objet de droite (ie get('bilanMigration',envir_stacomi)). Dans R ce type d'assignation peut se faire à l'aide de la commande <- ou =
bilanMigration=get('bilanMigration',envir_stacomi) tableau=get('tableau',envir_stacomi)
Pour avoir des informations sur la structure de ces objets on peut utiliser la fonction str de R, mais qu'est ce que str ?
? str
Devrait vous permettre de faire apparaitre une fenêtre d'aide sur l'utilisation de str. A première vue le code est un peu abscon, mais il y a toujours des informations sur l'écriture de la fonction et son utilité, il y a aussi des exemples.
Les objets
str(bilanMigration)
renvoit
Formal class 'BilanMigration' [package ".GlobalEnv"] with 6 slots ..@ dc :Formal class 'RefDC' [package "stacomi"] with 3 slots .. .. ..@ dc_selectionne: int 6 .. .. ..@ ouvrage : int 1 .. .. ..@ data :'data.frame': 10 obs. of 12 variables: .. .. .. ..$ dc : int [1:10] 5 6 7 8 10 12 15 16 17 18 .. .. .. ..$ dis_date_creation :Class 'Date' num [1:10] 9468 9411 10311 10385 13521 ... .. .. .. ..$ dis_date_suppression:Class 'Date' num [1:10] NA NA 11257 NA NA ... .. .. .. ..$ df : int [1:10] 1 2 3 4 9 11 13 13 14 14 .. .. .. ..$ dis_commentaires : chr [1:10] "Enregistrement video Arzal, Vilaine" "piege de comptage d'Arzal, rive gauche, Vilaine" "Piege de comptage de La Potinais, Oust" "piege de comptage de Malon, Vilaine" ... .. .. .. ..$ dif_ouv_identifiant : int [1:10] 1 1 2 3 4 1 5 5 6 6 .. .. .. ..$ ouv_libelle : chr [1:10] "Barrage d'Arzal" "Barrage d'Arzal" "Barrage de La Potinais" "Barrage de Malon" ... .. .. .. ..$ df_code : chr [1:10] "ARZAL_DF_ALOSE" "ARZAL_DFANG_GAB" "POTINAIS_DF_ANG" "MALON_DF_ANG" ... .. .. .. ..$ dif_localisation : chr [1:10] "Barrage d'Arzal. Passe à bassins successifs. Dans l'axe du barrage, en rive gauche par rapport aux vannes" "Barrage d'Arzal. Passe à anguilles. Dans l'axe du barrage, en rive gauche par rapport aux vannes, deux rampes à 10 m en amont e"| __truncated__ "Barrage de La Potinais (Oust). En rive droite à 5 m du clapet" "Barrage de Malon (Vilaine). Au centre de l'ouvrage dans l'ancienne pass entre le capet mobile et le seuil déversant" ... .. .. .. ..$ dif_orientation : chr [1:10] "Montee" "Montee" "Montee" "Montee" ... .. .. .. ..$ type_df : chr [1:10] "Passe à bassins successifs" "Rampes à civelles, anguillette, anguilles" "Rampes à civelles, anguillette, anguilles" "Rampes à civelles, anguillette, anguilles" ... .. .. .. ..$ type_dc : chr [1:10] "Analyse visuelle d'image" "Piégeage" "Piégeage" "Piégeage" ... ..@ taxons :Formal class 'RefTaxon' [package ".GlobalEnv"] with 1 slots .. .. ..@ data:'data.frame': 1 obs. of 5 variables: .. .. .. ..$ tax_code : int 2038 .. .. .. ..$ tax_nom_latin : chr "Anguilla anguilla" .. .. .. ..$ tax_nom_commun: chr "Anguille d'Europe" .. .. .. ..$ tax_ntx_code : int 15 .. .. .. ..$ tax_tax_code : logi NA ..@ stades :Formal class 'RefStades' [package ".GlobalEnv"] with 1 slots .. .. ..@ data:'data.frame': 1 obs. of 2 variables: .. .. .. ..$ std_code : chr "AGJ" .. .. .. ..$ std_libelle: chr "Anguille jaune" ..@ pasDeTemps:Formal class 'PasDeTempsJournalier' [package ".GlobalEnv"] with 4 slots .. .. ..@ dateDebut : POSIXlt[1:9], format: "2009-01-01" .. .. ..@ dureePas : num 86400 .. .. ..@ nbPas : num 365 .. .. ..@ noPasCourant: int 0 ..@ data :'data.frame': 365 obs. of 9 variables: .. ..$ No.pas : int [1:365] 0 1 2 3 4 5 6 7 8 9 ... .. ..$ Mesure : num [1:365] 0 0 0 0 0 0 0 0 0 0 ... .. ..$ Calcule : num [1:365] 0 0 0 0 0 0 0 0 0 0 ... .. ..$ Expert : num [1:365] 0 0 0 0 0 0 0 0 0 0 ... .. ..$ Ponctuel : num [1:365] 0 0 0 0 0 0 0 0 0 0 ... .. ..$ Effectif_total : num [1:365] 0 0 0 0 0 0 0 0 0 0 ... .. ..$ Type_de_quantite : Factor w/ 1 level "effectif": 1 1 1 1 1 1 1 1 1 1 ... .. ..$ Taux_d_echappement: num [1:365] -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ... .. ..$ Coef_conversion : num [1:365] 0 0 0 0 0 0 0 0 0 0 ... ..@ duree : POSIXct[1:365], format: "2009-01-01" "2009-01-02" ...
En fait elle montre une arborescence avec des slots (disons les branches de l'arbre). Les slots sont représentés par @. Par exemple
BilanMigration@dc@data
Renvoit un tableau, c'est la liste des dispositifs qui a été chargée depuis la base
Les data.frame
str(tableau)
renvoit
'data.frame': 365 obs. of 9 variables: $ No.pas : int 0 1 2 3 4 5 6 7 8 9 ... $ Mesure : num 0 0 0 0 0 0 0 0 0 0 ... $ Calcule : num 0 0 0 0 0 0 0 0 0 0 ... $ Expert : num 0 0 0 0 0 0 0 0 0 0 ... $ Ponctuel : num 0 0 0 0 0 0 0 0 0 0 ... $ Effectif_total : num 0 0 0 0 0 0 0 0 0 0 ... $ Type_de_quantite : Factor w/ 1 level "effectif": 1 1 1 1 1 1 1 1 1 1 ... $ Taux_d_echappement: num -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ... $ Coef_conversion : num 0 0 0 0 0 0 0 0 0 0 ...
Le data.frame est l'un des éléments de R les plus utilisés, c'est une matrice avec des noms. Pour accéder aux éléments au sein d'un tableau il existe plusieurs méthodes équivalentes
tableau$Effectif_total tableau[,"Effectif_total"] tableau[,6]
renvoient tous un vecteur correspondant à une des colonnes du tableau,
str(tableau$Effectif_total)
num [1:365] 0 0 0 0 0 0 0 0 0 0 ...
tableau[1,]
renvoit la première ligne du tableau
No.pas Mesure Calcule Expert Ponctuel Effectif_total Type_de_quantite 1 0 0 0 0 0 0 effectif Taux_d_echappement Coef_conversion 1 -1 0
la réindexation des data.frame
C'est vraiment là que R est puissant. Supposez que nous ne voulions afficher que les effectifs de poissons les jours ou il y a du poisson.
tableau[tableau$Effectif_total>0,"Effectif_total"]
tableau$Effectif_total>0 renvoit un vecteur avec des VRAIS et des FAUX. Quand on met un vecteur de vrais / faux qui fait la même dimension de que le nombre de lignes, à gauche dans les crochets du data.frame on fait de la ' réindexation c'est à dire qu'on ne renvoit que les ligne vraies
> tableau[tableau$Effectif_total>0,"Effectif_total"] [1] 7.890625 12.625000 12.625000 12.625000 12.625000 12.625000 [7] 12.625000 12.625000 9.526042 7.666667 7.666667 7.666667 [13] 7.666667 7.666667 7.666667 7.666667 7.666667 7.666667 [19] 7.666667 7.666667 4.798077 3.076923 3.076923 3.076923 [25] 3.076923 3.076923 3.076923 3.076923 3.076923 3.076923 [31] 3.076923 3.076923 3.076923 2.894918 2.785714 2.785714 [37] 2.785714 2.785714 2.785714 2.785714 2.785714 2.785714 [43] 2.785714 2.785714 2.785714 2.785714 2.785714 4.065476 [49] 4.833333 4.833333 4.833333 4.833333 4.833333 15.875000 [55] 22.500000 22.500000 22.500000 18.645833 16.333333 16.333333 [61] 21.437500 24.500000 17.437500 13.200000 13.200000 13.200000 [67] 13.200000 20.366667 24.666667 24.666667 17.460526 13.136842 [73] 13.136842 12.589474 10.283459 8.571429 8.571429 8.571429 [79] 8.571429 8.571429 8.571429 19.151786 25.500000 31.125000 [85] 34.500000 12.937500 20.416667 32.666667 32.666667 26.833333 [91] 23.333333 23.333333 72.708333 102.333333 102.333333 181.500000 [97] 193.791667 172.666667 172.666667 108.500000 37.500000 14.250000 [103] 19.031250 23.250000 23.250000 23.250000 104.760417 153.666667 [109] 153.666667 120.437500 100.500000 100.500000 100.500000 49.562500 [115] 19.000000 16.187500 14.500000 108.770833 165.333333 165.333333 [121] 374.187500 499.500000 409.395833 355.333333 355.333333 423.875000 [127] 433.125000 479.000000 217.791667 37.666667 37.666667 149.281250 [133] 216.250000 216.250000 216.250000 573.906250 788.500000 461.312500 [139] 188.750000 106.125000 84.000000 280.250000 398.000000 168.000000 [145] 30.000000 28.125000 27.000000 27.000000 108.250000 157.000000 [151] 260.437500 322.500000 323.229167 323.666667 323.666667 219.187500 [157] 156.500000 92.437500 54.000000 61.500000 66.000000 66.000000 [163] 116.156250 146.250000 146.250000 146.250000 190.468750 217.000000 [169] 217.000000 128.250000 75.000000 36.562500 13.500000 59.312500 [175] 86.800000 86.800000 86.800000 86.800000 195.050000 260.000000 [181] 303.750000 330.000000 330.000000 329.062500 328.500000 777.875000 [187] 1047.500000 459.270833 106.333333 106.333333 275.187500 376.500000 [193] 242.750000 162.500000 122.500000 98.500000 98.500000 98.500000 [199] 78.187500 56.000000 50.000000 65.625000 75.000000 75.000000 [205] 322.708333 471.333333 471.333333 958.312500 1250.500000 1121.125000 [211] 1043.500000 1070.687500 1087.000000 1928.875000 3427.750000 3525.250000 [217] 2120.062500 1456.500000 792.750000 394.500000 309.187500 258.000000 [223] 154.041667 91.666667 91.666667 208.333333 278.333333 278.333333 [229] 185.625000 97.083333 77.333333 77.333333 393.687500 583.500000 [235] 583.500000 583.500000 900.479167 1090.666667 1090.666667 812.541667 [241] 645.666667 645.666667 858.375000 1612.250000 1988.000000 1988.000000 [247] 1306.541667 897.666667 897.666667 556.000000 171.750000 64.200000 [253] 64.200000 64.200000 64.200000 54.387500 48.500000 34.125000 [259] 25.500000 25.500000 25.500000 21.437500 19.000000 19.000000 [265] 19.000000 19.000000 19.000000 41.343750 54.750000 54.750000 [271] 54.750000 37.614583 27.333333 27.333333 18.843750 13.750000 [277] 13.750000 13.750000 10.498716 8.547945 8.904110 8.651908 [283] 8.714286 8.714286 8.714286 8.714286 8.714286 8.714286 [289] 61.392857 93.000000 93.000000 93.000000 42.025259 11.440415 [295] 11.440415 11.440415 4.528497 18.421053 270.641447 406.500000 [301] 406.500000 406.500000 208.270833 89.333333 89.333333 42.250000 [307] 14.000000 14.000000 14.000000 11.916667 10.666667 10.666667 [313] 14.416667 16.666667 16.666667 22.656250 26.250000 26.250000 [319] 26.250000 33.750000 38.250000 38.250000 38.250000 34.343750 [325] 32.000000 12.000000
A retenir : Nous avons vu trois des principales classes d'objet dans R, les data.frame , les vecteurs , et les objets S4 .