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_atelier2 [2018/10/02 16:49]
katherinehebert [Les projets dans RStudio]
r_atelier2 [2019/08/08 17:49] (current)
mariehbrice [Atelier 2 : Charger et manipuler des données]
Line 12: Line 12:
 **Résumé :** Durant cet atelier, vous apprendrez comment charger et visualiser des données dans R. Vous apprendrez certaines fonctions permettant d’examiner vos données et vous apprendrez comment corriger certaines erreurs communes se produisant lors du chargement des données. Finalement, vous verrez l’importance de sauvegarder votre travail dans un script R, soit un fichier texte contenant tous vos codes et permettant de refaire toutes vos analyses en appuyant sur une seule touche (ou deux, ou trois peut-être…). Ensuite, nous présenterons tidyr et dplyr pour vous aider à transformer et à gérer le format de vos données ainsi que pour appliquer des fonctions simples ou complexes sur des sous-groupes de vos jeux de données. Cet atelier s’avérera utile non seulement pour les participants suivant notre série d’ateliers,​ mais également pour ceux et celles d’entre vous connaissant déjà le langage R et cherchant à maîtriser des outils plus avancés pour l'​analyse et la visualisation de vos données. **Résumé :** Durant cet atelier, vous apprendrez comment charger et visualiser des données dans R. Vous apprendrez certaines fonctions permettant d’examiner vos données et vous apprendrez comment corriger certaines erreurs communes se produisant lors du chargement des données. Finalement, vous verrez l’importance de sauvegarder votre travail dans un script R, soit un fichier texte contenant tous vos codes et permettant de refaire toutes vos analyses en appuyant sur une seule touche (ou deux, ou trois peut-être…). Ensuite, nous présenterons tidyr et dplyr pour vous aider à transformer et à gérer le format de vos données ainsi que pour appliquer des fonctions simples ou complexes sur des sous-groupes de vos jeux de données. Cet atelier s’avérera utile non seulement pour les participants suivant notre série d’ateliers,​ mais également pour ceux et celles d’entre vous connaissant déjà le langage R et cherchant à maîtriser des outils plus avancés pour l'​analyse et la visualisation de vos données.
  
-Lien vers la présentation Prezi associée ​: [[http://​prezi.com/​8qxowa3378ju/​csbq-atelier-r-2/​|Prezi]]+**Lien vers la nouvelle [[https://​qcbsrworkshops.github.io/​workshop02/​workshop02-fr/​workshop02-fr.html|présentation Rmarkdown]]** 
 + 
 +//S'il vous plaît essayez-la et dites aux coordonnateurs des ateliers R ce que vous en pensez!// 
 + 
 +Lien vers l'​ancienne ​[[http://​prezi.com/​8qxowa3378ju/​csbq-atelier-r-2/​|présentation ​Prezi]]
  
 Téléchargez les scripts et les données requis pour cet atelier :  Téléchargez les scripts et les données requis pour cet atelier : 
Line 30: Line 34:
 Qu-est-ce qu'un projet RStudio? Qu-est-ce qu'un projet RStudio?
   * Les projets RStudio permettent l'​organisation de son travail et l'​accès facile à tous les fichiers requis pour une analyse.   * Les projets RStudio permettent l'​organisation de son travail et l'​accès facile à tous les fichiers requis pour une analyse.
-  * Tout fichier, script, et documentation utilisé pour une analyse sont reliés et regroupés ensemble dans un projet.+  * Tout fichier, script, et documentation utilisé pour une analyse sont reliés et regroupés ensemble dans un même projet.
  
 L'​utilisation de projets RStudio facilite aussi la reproducibilité et le partage de données, de scripts, et de leur documentation. L'​utilisation de projets RStudio facilite aussi la reproducibilité et le partage de données, de scripts, et de leur documentation.
Line 36: Line 40:
 ===== Créer un projet dans RStudio =====  ===== Créer un projet dans RStudio ===== 
  
-Pour créer un projet dans RStudio, allez dans le menu //File// puis sélectionnez "New project".+Pour créer un projet dans RStudio, allez dans le menu //Fichier// puis sélectionnez "Nouveau projet".
  
 {{:​0_create_a_new_project.png?​400|}} {{:​0_create_a_new_project.png?​400|}}
Line 58: Line 62:
     * 01_figIntro.R     * 01_figIntro.R
   * Non:   * Non:
-    * final.csv //(Pas informatif!)//​ +    * final.csv ​ //(Pas informatif!)//​ 
-    * safnnejs.csv //​(C'​est n'​importe quoi!!)// +    * safnnejs.csv ​ //​(C'​est n'​importe quoi!)// 
-    * 1-4.csv //(Éviter d'​utiliser des chiffres!)//​ +    * 1-4.csv ​ //(Éviter d'​utiliser des chiffres!)//​ 
-    * Dont.separate.names.with.dots.csv //(Peut causer des erreurs de lecture de fichier!)//+    * Dont.separate.names.with.dots.csv ​ //(Peut causer des erreurs de lecture de fichier!)//
  
 ==== Bien nommer les variables ==== ==== Bien nommer les variables ====
Line 86: Line 90:
  
 Il est possible de faire toute la préparation des données dans R. Les avantages sont :  Il est possible de faire toute la préparation des données dans R. Les avantages sont : 
-  * Ça économise du temps pour les grosses bases de données +  * On économise du temps pour les grosses bases de données 
-  * Ça préserve les données d'​origine +  * On préserve les données d'​origine 
-  * Ça permet de basculer entre les modes "​long"​ et "​large"​ très facilement (plus de détails plus tard)+  * On peut basculer entre les modes "​long"​ et "​large"​ très facilement (plus de détails plus tard)
   * Pour des informations complémentaires,​ consultez la page suivante : [[https://​www.zoology.ubc.ca/​~schluter/​R/​data/​]]   * Pour des informations complémentaires,​ consultez la page suivante : [[https://​www.zoology.ubc.ca/​~schluter/​R/​data/​]]
  
Line 405: Line 409:
  
  
-==== Utilisez vos propres données ​(DÉFI) ​====+==== DÉFI: ​Utilisez vos propres données ====
  
-Essayez de charger, explorer, ​représenter graphiquement ​et enregistrer vos propres données dans R.+Essayez de charger, explorer, et enregistrer vos propres données dans R.
 Est-ce que le chargement fonctionne ?  Si ce n'est pas le cas, essayez d'​arranger vos données dans Excel. Enregistrez vos données "​arrangées"​ et essayez de les ouvrir dans R. Est-ce que le chargement fonctionne ?  Si ce n'est pas le cas, essayez d'​arranger vos données dans Excel. Enregistrez vos données "​arrangées"​ et essayez de les ouvrir dans R.
 ==== Réparer un jeu de données ==== ==== Réparer un jeu de données ====
Line 572: Line 576:
 De plus, les données en format long peuvent être agrégées et réorganisées en format large afin de produire des résumés ou de vérifier si un jeu de données est équilibré (i.e. avec le même nombre d'​observations par traitement). De plus, les données en format long peuvent être agrégées et réorganisées en format large afin de produire des résumés ou de vérifier si un jeu de données est équilibré (i.e. avec le même nombre d'​observations par traitement).
  
-On peut utiliser le paquet ''​tidyr''​ pour manipuler la structure d'un jeu de données en préservant ​tous les informations ​originaux ​à l'aide des fonctions suivantes:+On peut utiliser le paquet ''​tidyr''​ pour manipuler la structure d'un jeu de données en préservant ​toutes ​les informations ​d'​origine ​à l'aide des fonctions suivantes:
  
   * 1. "​rassembler"​ les données (//gather data// en anglais; large --> long)   * 1. "​rassembler"​ les données (//gather data// en anglais; large --> long)
   * 2. "​disperser"​ les données (//spread data// en anglais; long --> large)   * 2. "​disperser"​ les données (//spread data// en anglais; long --> large)
  
-Pour vous rappeler de ces deux termes, pensez à faire le ménage: lorsqu'​on disperse nos données (en format large) c'est le dégât, tandis que lorsqu'​on passe le balai, on rassemble les données pour les empiler proprement (en format long). 
  
 {{:​gather-spread.png?​600|}} {{:​gather-spread.png?​600|}}
  
  
-Supposons que vous envoyez votre assistant de terrain pour faire la collecte de données des dimensions de plusieurs arbres sur un site de recherche, ​sois le diamètre à la hauteur de la poitrine (DHP) et la hauteur. Il ou elle vous revient avec un jeu de donnés en format "​dégât"​ (format large):+Supposons que vous envoyez votre assistant de terrain pour faire la collecte de données des dimensions de plusieurs arbres sur un site de recherche, ​soit le diamètre à la hauteur de la poitrine (DHP) et la hauteur. Il/elle revient avec un jeu de donnés en format "​dégât"​ (format large):
  
 <code rsplus | > <code rsplus | >
Line 601: Line 604:
 </​code>​ </​code>​
  
-La plupart des paquets dans le "​Hadleyverse"​ requièrent un format ​"long", c'​est-à-dire où chaque rangée est une observation unique, et chaque colonne est une variable. Utilisons la fonction ''​gather()''​ pour "​rassembler"​ nos données en longueur. ''​gather()''​ prend plusieurs colonnes et les empile dans deux colonnes: une colonne spécifiant la variable mesurée, et l'​autre spécifiant la mesure associée.+La plupart des paquets dans le "​Hadleyverse"​ requièrent un format long, c'​est-à-dire où chaque rangée est une observation unique, et chaque colonne est une variable. Utilisons la fonction ''​gather()''​ pour "​rassembler"​ nos données en longueur. ''​gather()''​ prend plusieurs colonnes et les empile dans deux colonnes: une colonne spécifiant la variable mesurée, et l'​autre spécifiant la mesure associée.
  
 La fonction ''​gather()''​ prend au moins 3 arguments: La fonction ''​gather()''​ prend au moins 3 arguments:
Line 929: Line 932:
 **BONUS :** Dans RStudio, on peut insérer le "​pipe"​ rapidement avec la combinaison des touches suivantes: ''​Ctrl''​ (or ''​Cmd''​ sur Mac) +''​Shift''​+''​M''​. **BONUS :** Dans RStudio, on peut insérer le "​pipe"​ rapidement avec la combinaison des touches suivantes: ''​Ctrl''​ (or ''​Cmd''​ sur Mac) +''​Shift''​+''​M''​.
  
-=====dplyr - regroupement ​d'​opérations et sommaires=====+=====Regroupement ​d'​opérations et sommaires ​avec "​dplyr"​=====
  
 Les verbes ''​dplyr''​ que nous avons utilisés dans cet atelier sont utiles individuellement,​ mais deviennent particulièrement puissants quand ils sont reliés par le "​pipe"​ (''​%>​%''​),​ et lorsqu'​on les applique sur des sous-ensembles de données. Les fonctions ''​dplyr''​ suivantes nous permettent de séparer nos jeu de données en groupes distincts sur lesquels on peut exécuter des opérations individuelles,​ comme des fonctions d'​aggrégation et de sommaire: Les verbes ''​dplyr''​ que nous avons utilisés dans cet atelier sont utiles individuellement,​ mais deviennent particulièrement puissants quand ils sont reliés par le "​pipe"​ (''​%>​%''​),​ et lorsqu'​on les applique sur des sous-ensembles de données. Les fonctions ''​dplyr''​ suivantes nous permettent de séparer nos jeu de données en groupes distincts sur lesquels on peut exécuter des opérations individuelles,​ comme des fonctions d'​aggrégation et de sommaire:
Line 1004: Line 1007:
 On s'​aperçoit que le poussin a perdu de la masse (il est probablement décédé, puisqu'​il a seulement 2 observations). D'un point de vue scientifique,​ on pourrait s'​intéresser davantage à la question: quelle alimentation engendre un gain de masse plus important chez les poussins individuels?​ On pourrait donc calculer la différence de masse entre le début et la fin avec deux autres fonctions utiles dans ''​dplyr''​ : ''​first()''​ et ''​last()''​ nous permettent d'​accéder à la première et la deuxième observation d'un sous-groupe,​ respectivement. On s'​aperçoit que le poussin a perdu de la masse (il est probablement décédé, puisqu'​il a seulement 2 observations). D'un point de vue scientifique,​ on pourrait s'​intéresser davantage à la question: quelle alimentation engendre un gain de masse plus important chez les poussins individuels?​ On pourrait donc calculer la différence de masse entre le début et la fin avec deux autres fonctions utiles dans ''​dplyr''​ : ''​first()''​ et ''​last()''​ nous permettent d'​accéder à la première et la deuxième observation d'un sous-groupe,​ respectivement.
 ++++ ++++
----- 
  
-===== Indice pour les ninjas ​=====+==== Indice pour les ninjas ====
  
 Notez qu'on peut regrouper un jeu de données par plus qu'un facteur, en suivant la syntaxe suivante : Notez qu'on peut regrouper un jeu de données par plus qu'un facteur, en suivant la syntaxe suivante :
Line 1017: Line 1019:
  
 Le ''​groupe2''​ est éliminé, et le jeu de données devient ensuite groupé par ''​groupe1''​. ​ Le ''​groupe2''​ est éliminé, et le jeu de données devient ensuite groupé par ''​groupe1''​. ​
----- 
  
-===== NINJA DÉFI: dplyr & magrittr ​=====+==== NINJA DÉFI: dplyr & magrittr ====
 // En utilisant le jeu de données ''​ChickWeight'',​ créez un tableau sommaire qui indique pour chaque ''​Diet'',​ la moyenne de la différence de masse entre la fin et le début de l'​étude pour chaque poussin. Utilisez les verbes ''​dplyr''​ et le pipe ''​%>​%''​. (Indice : les fonctions ''​first()''​ et ''​last()''​ pourraient s'​avérer utiles).// ​ // En utilisant le jeu de données ''​ChickWeight'',​ créez un tableau sommaire qui indique pour chaque ''​Diet'',​ la moyenne de la différence de masse entre la fin et le début de l'​étude pour chaque poussin. Utilisez les verbes ''​dplyr''​ et le pipe ''​%>​%''​. (Indice : les fonctions ''​first()''​ et ''​last()''​ pourraient s'​avérer utiles).// ​
  
Line 1042: Line 1043:
 ++++ ++++
  
----- 
  
 ===== Fusionner des tableaux de données avec dplyr ===== ===== Fusionner des tableaux de données avec dplyr =====
Line 1058: Line 1058:
  
   * [[https://​www.rstudio.com/​wp-content/​uploads/​2015/​02/​data-wrangling-cheatsheet.pdf|L'​aide-mémoire de manipulation de données de RStudio [EN]]] ​   * [[https://​www.rstudio.com/​wp-content/​uploads/​2015/​02/​data-wrangling-cheatsheet.pdf|L'​aide-mémoire de manipulation de données de RStudio [EN]]] ​
-  * [[https://​juba.github.io/​tidyverse/​index.html/Introduction au tidyverse par Julien Barnier [FR]]] ​+  * [[https://​juba.github.io/​tidyverse/​index.html|Introduction au tidyverse par Julien Barnier [FR]]] ​
   * [[https://​cran.rstudio.com/​web/​packages/​dplyr/​vignettes/​introduction.html|CRAN Intro to dplyr [EN]]]   * [[https://​cran.rstudio.com/​web/​packages/​dplyr/​vignettes/​introduction.html|CRAN Intro to dplyr [EN]]]
   * [[http://​seananderson.ca/​2014/​09/​13/​dplyr-intro.html|Sean Anderson'​s Intro to dplyr and pipes [EN]]]   * [[http://​seananderson.ca/​2014/​09/​13/​dplyr-intro.html|Sean Anderson'​s Intro to dplyr and pipes [EN]]]
   * [[https://​rpubs.com/​bradleyboehmke/​data_wrangling|Bradley Boehmke'​s Intro to data wrangling [EN]]]   * [[https://​rpubs.com/​bradleyboehmke/​data_wrangling|Bradley Boehmke'​s Intro to data wrangling [EN]]]