20 décembre 2021

Manifeste

Approche complète de l’analyse de données

Données bien rangées (tidy)

Enchaînement des opérations (%>% de magrittr, + de ggplot2)

Programmation fonctionnelle (pas orientée objet), optimisée pour les utilisateurs (lisibilité plutôt que performance)

library("tidyverse")
vignette("manifesto", package = "tidyverse")

Ensemble de packages, appelés par tidyverse

Données rectangulaires

Modèle du data frame : une ligne par observation, une colonne par attribut.

Dataframe optimisé : tibble

Documentation : vignette("tibble", package="tibble")

ggplot2::diamonds
## # A tibble: 53,940 × 10
##   carat cut     color clarity depth table price
##   <dbl> <ord>   <ord> <ord>   <dbl> <dbl> <int>
## 1  0.23 Ideal   E     SI2      61.5    55   326
## 2  0.21 Premium E     SI1      59.8    61   326
## 3  0.23 Good    E     VS1      56.9    65   327
## 4  0.29 Premium I     VS2      62.4    58   334
## 5  0.31 Good    J     SI2      63.3    58   335
## # … with 53,935 more rows, and 3 more variables:
## #   x <dbl>, y <dbl>, z <dbl>

Pipe (tuyau)

Le package magrittr introduit le pipe %>% (Ctrl + Shift + m)

Modèle du pipeline de la programmation système repris par la bioinformatique

Pipe (tuyau)

Exemple :

1:10 %>%
    sum
## [1] 55

Principe : les données résultant d’un calcul sont passées à la fonction suivante.

Enchaînement :

1:10 %>%
    sqrt %>%
    sum
## [1] 22.46828

Code plus lisible que sum(sqrt(1:10))

Autres opérateurs

Tuyau avec retour :

library("magrittr")
x <- c(4, 9)
x %<>%
    sqrt
x
## [1] 2 3

Embranchement :

x %T>%
    plot %>%
    sum

## [1] 5

Autres opérateurs

Exposition :

diamonds %$%
    mean(price)
## [1] 3932.8
# Équivalent à
diamonds %>%
    pull(price) %>%
    mean
## [1] 3932.8

Le tuyau de base est accessible sans charger magrittr

Les autres sont moins utiles

Méthode de travail

Bagarre

Package readr

Lecture de fichiers texte variés.

Importation dans un tibble.

Référence

Fichier csv

Fonctions read_csv() et read_csv2()

Remplacent read.csv() et read.csv2() de base

Plus rapide que les fonctions originales.

Rangement