wiki:Recette BilanMigration

Version 8 (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. En remontant dans la page vous pourrez constater que l'objet au dessus contentait également des data.frame (dans le slot data) Comment accéder aux data frames ? Pour accéder aux éléments au sein d'un tableau il existe plusieurs méthodes équivlentes

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

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. La première dimension du data frame (à gauche dans le crochet) représente les lignes Quand on met un vecteur de vrais / faux qui fait la même dimension de que le nombre de lignes, à la place des lignes