# Initiation aux data science à l'aide de R et du tidyverse contact@prabi.fr ![L'univers bien rangé](https://thinkr.fr/wp-content/uploads/2019/07/thinkr_tidyverse-first_header.jpg) ## Remerciements ``` If you use the computing resources of LBBE / PRABI, thank you to make it appear in your scientific publications by including the following sentence: "This work was performed using the computing facilities of the CC LBBE/PRABI." ``` ## Prérequis - suivre l'épisode: "Prise en main de R à travers RStudio" - Suivre le tutorial "ex-data-filter" ```R run_tutorial("ex-data-filter","learnr") ```` ## Pour les fayots !

Tidyverse visualization manipulation basics - RStudio

## Apprendre R à travers la pédagogie "tydiverse first" (https://thinkr.fr/pedagogie-de-la-formation-au-langage-r/) https://www.openscapes.org/blog/2020/10/12/tidy-data/ La force de R c'est environ 13000 packages référencés sur l'archive du CRAN https://cran.r-project.org/web/packages/ mais c'est aussi un de ses points faibles quand on débute. Le langage R repose sur de nombreux package/fonctions/opérateurs/objets de base qu'il faut assimiler avant de rentrer dans le vif du sujet. https://larmarange.github.io/analyse-R/ Nous allons tenter d'apprivoiser R à l'aide du nouvel ordre tidyverse ! ![](https://static.wikia.nocookie.net/frstarwars/images/9/9f/Premier_Ordre_base_Starkiller.png/revision/latest/scale-to-width-down/1000?cb=20151108134926) En 2016 Hadley Wickham propose un ensemble de packages R répondant à une grammaire cohérante, lisible et intuitive pour l'analyse de données / data science, dont notemment: - l'importation des données - la manipulation des données - la visualisation des données - la modélisation des données - l'exportation des données ![](https://juba.github.io/tidyverse/resources/logos/core_packages.png) Ces packages sont aujourd'hui regroupés sous le package tidyverse (https://www.tidyverse.org/), on y retrouve : - ggplot2 (visualisation) - dplyr (manipulation des données) - tidyr (remise en forme des données) - purrr (programmation) - readr (importation de données) - tibble (tableaux de données) - forcats (variables qualitatives) - stringr (chaînes de caractères) https://thinkr.fr/c-est-quoi-le-tidyverse/ Tout d'abord nous allons installer le package `tidyverse` sous R/RStudio: ```R install.packages("tidyverse") ``` Pour charger de librairie on utilise la fonction `library` de R avec `tidyverse` comme argument: ```R library(tidyverse) ── Attaching packages ──────────────────────────────────────────── tidyverse 1.3.1 ── ✓ ggplot2 3.3.5 ✓ purrr 0.3.4 ✓ tibble 3.1.5 ✓ dplyr 1.0.7 ✓ tidyr 1.1.4 ✓ stringr 1.4.0 ✓ readr 2.0.2 ✓ forcats 0.5.1 ── Conflicts ─────────────────────────────────────────────── tidyverse_conflicts() ── x dplyr::filter() masks stats::filter() x dplyr::lag() masks stats::lag() ``` Nous allons utiliser le jeux de données `iris` connu également sous le nom d'Iris de Fisher ou d'Iris d'Anderson (https://fr.wikipedia.org/wiki/Iris_de_Fisher, https://rpubs.com/vidhividhi/irisdataeda), pour illustrer les différentes fonctionalités de base du tidyverse. http://cbdm-01.zdv.uni-mainz.de/~galanisl/danalysis/ Iris setosa
Iris versicolor
Iris virginica
Présentation des principes du tidyverse (https://juba.github.io/tidyverse/06-tidyverse.html) - tidy data et tibble vs data.frame (voir chappitre 6.3, 6.4) https://www.openscapes.org/blog/2020/10/12/tidy-data/ ```R class(iris) tidyris <- as_tibble(iris) class(tidyris) ``` # ggplot2 ```R ggplot(data = tidyris, aes(x = Sepal.Length)) + geom_histogram() ggplot(data = tidyris, aes(x = Sepal.Length, y = Sepal.Width, color = Species, shape = Species)) + geom_point() + xlab("Sepal Length") + ylab("Sepal Width") + ggtitle("Sepal Length-Width") ggplot(data = tidyris, aes(x = Petal.Length, y = Petal.Width, color = Species, shape = Species)) + geom_point() + xlab("Petal Length") + ylab("Petal Width") + ggtitle("Petal Length-Width") ``` # dplyr, le roi de la manipulation ! ```R slice(iris,10) slice(iris,1:10) ``` # magritr, hip hip pipe ! Utiliser le forward pipe opérateur, %>% https://magrittr.tidyverse.org/ # tidyquery Pour les afficionados du langage `SQL` (Structured Query Langage), même si loin d'être parfait (par exemple ne gère les join > trois tables), tidyquery est fait pour vous ! https://github.com/ianmcook/tidyquery # queryparser # Les Rstudio cheatsheets https://www.rstudio.com/resources/cheatsheets/ # Pour être styleR ! https://style.tidyverse.org/pipes.html https://juba.github.io/tidyverse/index.html https://larmarange.github.io/analyse-R/introduction-au-tidyverse.html https://jcoliver.github.io/learn-r/