Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
r_atelier5 [2018/11/28 09:54]
katherinehebert [Commandes if et if/else]
r_atelier5 [2021/10/13 23:51] (current)
lsherin
Line 1: Line 1:
 +<WRAP group>
 +<WRAP centeralign>​
 +<WRAP important>​
 +<wrap em> __AVIS IMPORTANT__ </​wrap> ​
 +
 +<wrap em> Depuis l'​automne 2021, ce wiki a été discontinué et n'est plus activement développé. </​wrap>​
 +
 +<wrap em> Tout le matériel mis à jour et les annonces pour la série d'​ateliers R du CSBQ se trouvent maintenant sur le [[https://​r.qcbs.ca/​fr/​workshops/​r-workshop-05/​|site web de la série d'​ateliers R du CSBQ]]. Veuillez mettre à jour vos signets en conséquence afin d'​éviter les documents périmés et/ou les liens brisés. </​wrap>​
 +
 +<wrap em> Merci de votre compréhension,​ </​wrap>​
 +
 +<wrap em> Vos coordonnateurs de la série d’ateliers R du CSBQ. </​wrap>​
 +
 +</​WRAP>​
 +</​WRAP>​
 +<WRAP clear></​WRAP>​
 +
 ======= Série d'​ateliers en R du CSBQ ======= ======= Série d'​ateliers en R du CSBQ =======
  
Line 14: Line 31:
  
  
-**Lien vers la nouvelle [[https://​qcbsrworkshops.github.io/Workshops/​workshop05/​workshop05-en/​workshop05-fr.html|présentation Rmarkdown]]** ​(en anglais seulement, la version française viendra sous peu!) +**Lien vers la nouvelle [[https://​qcbsrworkshops.github.io/​workshop05/​workshop05-fr/​workshop05-fr.html|présentation Rmarkdown]]** ​
  
 //S'il vous plaît essayez-la et dites aux coordonnateurs des ateliers R ce que vous en pensez!// //S'il vous plaît essayez-la et dites aux coordonnateurs des ateliers R ce que vous en pensez!//
Line 184: Line 201:
 ==== Attention à la syntaxe! ==== ==== Attention à la syntaxe! ====
  
-Les accolades ''​{ }''​ sont utilisées pour indiquer à R que la commande ​est à exécuter au complet. Par exemple, essayez: ​+Les accolades ''​{ }''​ sont utilisées pour indiquer à R que l'​expression continue sur plusieurs lignes et est à exécuter au complet. Par exemple, essayez: ​
  
 <code rsplus> <code rsplus>
Line 191: Line 208:
 </​code>​ </​code>​
  
-//La commande ''​else''​ ne fonctionne pas, parce que R évalue la première ligne sans reconnaître que votre commande n'est pas complète.// +//La commande ''​else''​ ne fonctionne pas, parce que R évalue la première ligne sans reconnaître que votre expression continue sur la deuxième ligne.// 
  
 Utilisez plutôt: ​ Utilisez plutôt: ​
Line 197: Line 214:
 <code rsplus> <code rsplus>
 if ((2 + 2) == 4) { if ((2 + 2) == 4) {
-  print("​Les maths, c'est logique!."​) ​ # R n'​évalue pas encore cette expression puisque l'​accolade n'est pas fermée. ​+  print("​Les maths, c'est logique!"​) ​ # R n'​évalue pas encore cette expression puisque l'​accolade n'est pas fermée. ​
 } else { } else {
-  print("​Houston,​ on a problem.")+  print("​Houston,​ on a un problème.")
 }  # Comme toutes les accolades sont fermées, R va évaluer les commandes en entier. ​ }  # Comme toutes les accolades sont fermées, R va évaluer les commandes en entier. ​
 </​code>​ </​code>​
Line 226: Line 243:
 Les boucles sont utiles pour: Les boucles sont utiles pour:
   * faire quelque chose pour chaque élément d'un objet.   * faire quelque chose pour chaque élément d'un objet.
-  * faire quelque chose jusqu'​à la fin du traitement de données.+  * faire quelque chose jusqu'​à la fin des données ​à traiter.
   * faire quelque chose pour chaque fichier dans un répertoire.   * faire quelque chose pour chaque fichier dans un répertoire.
-  * faire quelque chose qui peut échouer, jusqu'​à ce que ça marche.+  * faire quelque chose qui peut échouer, jusqu'​à ce que ça fonctionne.
   * faire des calculs itératifs jusqu'​à convergence.   * faire des calculs itératifs jusqu'​à convergence.
  
Line 309: Line 326:
 \\  \\ 
  
-Les boucles ''​for''​ sont souvent utilisées pour exécuter des opérations successivement sur un jeu de données. Nous utiliserons ces boucles pour évaluer des fonctions sur le jeu de données CO2, qui est inclu dans R. Notez que c'est le même jeu de données utilisé pour l'​atelier 2. +Les boucles ''​for''​ sont souvent utilisées pour exécuter des opérations successivement sur un jeu de données. Nous utiliserons ces boucles pour évaluer des fonctions sur le jeu de données CO2, qui est intégré ​dans R. Notez que c'est le même jeu de données utilisé pour l'​atelier 2. 
  
 <code rsplus> <code rsplus>
 data(CO2) # ceci charge le jeu de données dans R data(CO2) # ceci charge le jeu de données dans R
-for (i in 1:​length(CO2[,​1])) { # pour chaque ligne du jeu de donnée ​CO2+for (i in 1:​length(CO2[,​1])) { # pour chaque ligne du jeu de données ​CO2
   print(CO2$conc[i]) # affiche les concentrations de CO2   print(CO2$conc[i]) # affiche les concentrations de CO2
 } }
  
-for (i in 1:​length(CO2[,​1])) { # pour chaque ligne du jeu de donnée ​CO2 +for (i in 1:​length(CO2[,​1])) { # pour chaque ligne du jeu de données ​CO2 
-  if(CO2$Type[i] == "​Quebec"​) { # si le type est Quebec+  if(CO2$Type[i] == "​Quebec"​) { # si le type est "Quebec"
     print(CO2$conc[i]) # affichez les concentrations de CO2 }     print(CO2$conc[i]) # affichez les concentrations de CO2 }
   }   }
Line 325: Line 342:
 \\  \\ 
  
-**Truc 1.** Pour exécuter une boucle sur chaque ligne d'un jeu de donnée, on utilise la fonction ''​nrow()''​. ​+**Truc 1.** Pour exécuter une boucle sur chaque ligne d'un jeu de données, on utilise la fonction ''​nrow()''​. ​
 <code rsplus> <code rsplus>
-for (i in 1:​nrow(CO2)) { # pour chaque ligne du jeu de donnée ​CO2+for (i in 1:​nrow(CO2)) { # pour chaque ligne du jeu de données ​CO2
   print(CO2$conc[i]) # affichez les concentrations de CO2   print(CO2$conc[i]) # affichez les concentrations de CO2
 } }
Line 341: Line 358:
 \\  \\ 
  
-**Truc 3.** La partie "​expression"​ de la boucle peut contenir plusieurs lignes de commandes ​différents+**Truc 3.** La partie "​expression"​ de la boucle peut contenir plusieurs lignes de commandes ​différentes
  
 <code rsplus> <code rsplus>
Line 443: Line 460:
 head(mtcars) head(mtcars)
  
-get the mean hp by cylinder groups+obtient la moyenne de hp par groupe de cylindres
 tapply(mtcars$hp,​ mtcars$cyl, FUN = mean) tapply(mtcars$hp,​ mtcars$cyl, FUN = mean)
 </​code>​ </​code>​
Line 647: Line 664:
 ====Exercice 4==== ====Exercice 4====
  
-Créez un graphique montrant les concentrations en fonction de l'​absorption et où chaque plante est représenté ​par des points de différents ​couleurs.\\ ​+Créez un graphique montrant les concentrations en fonction de l'​absorption et où chaque plante est représentée ​par des points de couleurs ​différentes.\\ 
  
 **Bonus**: Essayez de le faire avec une boucle nichée! **Bonus**: Essayez de le faire avec une boucle nichée!
Line 671: Line 688:
 ==== Pourquoi créer ses fonctions? ==== ==== Pourquoi créer ses fonctions? ====
  
-La plupart ​du travail ​lourd dans R est effectué ​par les fonctions. Elles sont utiles pour:+Le gros du travail dans R est fait par des fonctions. Elles sont utiles pour:
   * répéter une même tâche mais en changeant ses paramètres   * répéter une même tâche mais en changeant ses paramètres
   * rendre votre code plus lisible   * rendre votre code plus lisible
Line 941: Line 958:
   * Utilisez toujours le même opérateur d'​assignation. ''<​-''​ est préférable (''​=''​ fonctionne, mais ne changez pas entre les deux)   * Utilisez toujours le même opérateur d'​assignation. ''<​-''​ est préférable (''​=''​ fonctionne, mais ne changez pas entre les deux)
   * Utilisez des crochets pour encadrer vos structures de contrôle, même si c'est seulement pour une ligne. ​   * Utilisez des crochets pour encadrer vos structures de contrôle, même si c'est seulement pour une ligne. ​
-  ​* À l'​intérieur des crochets, faites un alinéa d'au moins deux espaces pour chaque ligne de code. +    ​* À l'​intérieur des crochets, faites un alinéa d'au moins deux espaces pour chaque ligne de code. 
-  * Les crochets de fermeture occupent généralement leur propre ligne, sauf s'ils précèdent une condition **else**. ​+    * Les crochets de fermeture occupent généralement leur propre ligne, sauf s'ils précèdent une condition **else**. ​
   * Définissez chaque variable sur sa propre ligne   * Définissez chaque variable sur sa propre ligne