class: center, middle, inverse, title-slide .title[ # Analyse de données AIS de Global Fishing Watch avec R ] .subtitle[ ## Séance 3: Introduction à l’analyse reproductible de données avec R ] --- background-image: url("figs/GFW_PRIMARY_RGB.png") background-position: 93% 95% background-size: 250px # Plan + Analyses reproductibles de données avec R -- + Comment organizer une __séance de travail__ avec R et RStudio: bonnes pratiques et quelques considérations -- + Installation de R, RStudio, `gfwr` et autres packages -- + Brève intro à R avec des données réelles --- class: inverse, middle, center # Analyses reproductibles de données avec R --- ## Pourquoi apprendre et utiliser `R`? -- + **Software _libre_**: _gratuit_ et _libre_ d'être utilisé et modifié -> l'un des piliers de la __science ouverte__. -- + __Basé sur des scripts__: reproductibilité, __transparence__, suivi des erreurs, excellent moyen d'apprendre les méthodes. -- + __Interdiciplinaire et modulaire:__ Le langage de prédilection des statisticiens et des chercheurs dans plusieurs domaines: code écrit par les spécialistes. --- ## Pourquoi apprendre et utiliser `R`? + __Communication__ avec d'autres outils : manuscrits, présentations, applications, rapports et avec __d'autres langages de programmation__ (par exemple, `reticulate` pour exécuter des scripts Python) -- + Super __capacités graphiques__! -- + __Support officiel et une communauté active et accueillante__: listes de diffusion, Stack Overflow, [groupes useR](https://r-community.github.io/user-groups/rugs.html), sections [.purple[R-Ladies+]](https://r-community.github.io/user-groups/rladies.html), communautés Slack, `#rstats` --- ## `R` a une structure modulaire : __packages__ + L'installation de `R` __base__ comprend les packages de base développés et entretenus par l'équipe de développement __`R` Core Development Team__ -- + Les autres packages sont créés par la communauté et hébergés dans __CRAN__ (The Comprehensive `R` Archive Network), Bioconductor, __GitHub__ et rOpenSci.org's R-Universe --- class: inverse, middle, center # Comment organizer une __séance de travail__ avec R et RStudio: bonnes pratiques et quelques considérations --- ## Où travailler? Le répertoire de travail ("_working directory_") - S'organizer en faisant appel à la *structure hierarchique de dossiers et fichiers* du système d'exploitation ("l'arborescence": la hiérarchie) -- + Nos devons indiquer à R où nous allons travailler, afin qu'il sache où lire les fichiers, où enregistrer les résultats, etc.: le __répertoire de travail__ -- + Utiliser __un seul dossier pour chaque projet__. --- ## Où travailler? Le répertoire de travail ("_working directory_") + R a une valeur déterminée: vérifiez les options générales -- + À tout moment, on peut demander où on travaille: `getwd()` (_"get working directory"_) -- + On pourrait dire à R où travailler (`setwd()`) mais il y a une meilleure option qu'on verra tout de suite. --- ## Chemins absolus et relatifs + Les chemins absolus son uniques à chaque personne/ordinateur `C:\Documents\Andrea\example` Sur Windows -- `/home/andrea/Documents` Sur d'autres systèmes d'exploitation (mac, Linux) -- + Si nous partageons du code qui utilise des chemins absolus les autres ne pourront pas le tourner: __problème de reproductibilité__ --- ## Chemins absolus: Quoi faire? Au lieu de __chemins absolus__ nous devrions utiliser des __chemins relatifs__: -- + `.` "ici" -- + `./figs` un sous-dossier appelé `figs` -- + `./figs/figure.png` un fichier dans `figs` --- ## L'espace de travail (_workspace_) Pendant une __séance de travail__ sur R, on ne tourne pas un code directement sur la console, mais on utilise des __*scripts*__, fichiers avec l'extension __.R__ avec toutes les commandes qui seront éxécutées. - Lire des fichiers d'entrée qui sont gardés dans le disque dur (optionel) -- - Créer des __objets__: éxécuter des fonctions, des analyses, des figures -- - Souvent, écrire les résultats ou sauver les figures sur le disque dur --- ## L'espace de travail (_workspace_) - Les objets crées pendant la séance occupent la mémoire RAM: l'__espace de travail__. -- + L'espace de travail peut être enregistré et chargé entre les séances, __MAIS vous pouvez perdre la trace de la manière dont vous les avez créés__. -- + Avoir un script solide et complet est __essentiel__ pour une séance organisée -- + Sauver le _workspace_ est secondaire et __fortement déconseillé__. --- ## D'autres considérations - __Ne pas modifier les fichiers de données brutes__, mais plutôt enregistrer les données traitées dans un autre fichier et __garder les scripts__ qui ont modifié les données -- - Commenter le code (avec `#`) est utile, mais la __documentation claire et complète__ est toujours clé. Metadonnées, méthodes, réferences, erreurs rencontrées sur le chemin... --- class: inverse, middle ## `#bonnespratiques` 1. Un dossier principal, clarté sur le répertoire de travail 1. Une structure claire du dossier, et des chemins relatifs dans le code 1. Faire confiance aux scripts, pas à l'espace de travail 1. Ne pas modifier les données brutes 1. Documentation sur les méthodes employées, commentaires accompagnant le code --- class: inverse, middle ## Installation de `gfwr` et d'autres packages 1. Installer R et RStudio 1. Créer un compte Global Fishing Watch 1. Gérer un token API (avez vous décrit pourquoi vous créez ce token?) 1. Ajouter le token à la séance R 1. Installer `gfwr` et les autres packages 1. Executer un code de test --- class: inverse, middle ## Projets RStudio - Les projets RStudio créent un fichier __.Rproj__ dans votre dossier qui sert de raccourci pour vos projets et signale a RStudio où la séance aura lieu - RStudio lira et comprendra que le répertoire de travail est celui que vous avez choisi. - Nous avons préparé un exemple --- class: center, middle # Merci! Ce module a été adapté à partir de documents antérieurs créés par [¡liibre!](https://github.com/liibre)