Chapitre 2 Le tidyverse
Le tidyverse est un ensemble de packages proposant une syntaxe cohérente pour remplir l’essentiel des traitements propres à la science de la données, de la lecture des données à la valorisation, en passant par la modélisation. Le manifeste du tidyverse comprend 4 principes clefs pour les packages :
Utiliser les structures de données existantes : ne pas créer des objets ad hoc ;
Utiliser l’opérateur pipe ;
S’intégrer dans l’approche de programmation fonctionnelle de R ;
Designé pour les être humains : favoriser la facilité d’usage à la performance machine.

2.1 Présentation des packages
2.1.1 Des packages pour lire des données
2.1.1.2 Hors tidyverse
{odbc}/{Rposgresql}pour accéder à des données stockées sous forme de base de données{sf}pour lire des données spatiales{rsdmx}pour lire des données sdmx
2.1.3 Des packages pour nettoyer des données
2.1.3.1 tidyverse
{forcats}permet de manipuler les variables de type catégoriel (ou factor en R){stringr}permet de manipuler des chaînes de caractères{lubridate}permet de manipuler des dates
2.1.3.2 Hors tidyverse
{stringi}permet de manipuler des chaînes de caractères{RcppRoll}qui regroupe des opérations fenêtrées ou glissantes
2.2 Les spécificités du tidyverse
Quelques spécificités des fonctions de ce framework :
- Ces packages sont orientés manipulation de dataframes et non de vecteurs
- En conséquence, on utilise jamais l’indexation des colonnes de tables (le “$”) pour appeler une variable
- Chaque fonction ne fait qu’une chose et une seule (c’est une opération élémentaire)
- L’ensemble des fonctions obéissent à la même logique, ce qui permet de simplifier l’apprentissage
- L’ensemble de ces opérations élémentaires peuvent s’enchaîner à la manière d’un ETL avec le pipe
2.3 D’autres approches possibles
Les fonctions que nous allons voir obéissent à une logique intégrée et simple, qui permet des manipulations complexes, à partir du moment ou l’on est capable d’identifier et de sérier chaque opération élémentaire à réaliser.
D’autres packages permettent également de réaliser ce type de manipulations. La différence est qu’ils sont souvent dédiés à une tâche spécifique, ce qui rend la cohérence moins évidente lorsque l’on doit réaliser plusieurs opérations.
Un autre package propose toutefois une vision intégrée de la sorte : {data.table}.
Plusieurs différences sont à noter :
{data.table}est plus rapide sur d’importants volumes de données, le code est très concis.
{dplyr}est plus simple à apprendre, le code est plus lisible, il peut s’appliquer à des formats de données multiples, il s’intègre dans un framework global qui va de la lecture des données ({readr},{readxl},{haven}…) à leur valorisation ({ggplot2}).