Comment utiliser l’opérateur de canalisation dans R (avec exemples)



Vous pouvez utiliser l’opérateur pipe ( %>% ) dans R pour « diriger » ensemble une séquence d’opérations.

Cet opérateur est le plus couramment utilisé avec le package dplyr dans R pour effectuer une séquence d’opérations sur une trame de données.

La syntaxe de base de l’opérateur pipe est la suivante :

df %>% 
  do_this_operation %>% 
  then_do_this_operation %>%
  then_do_this_operation ...

L’opérateur de canalisation transmet simplement les résultats d’une opération à l’opération suivante située en dessous.

L’avantage d’utiliser l’opérateur pipe est qu’il rend le code extrêmement facile à lire.

Les exemples suivants montrent comment utiliser l’opérateur pipe dans différents scénarios avec l’ensemble de données mtcars intégré dans R.

#view first six rows of mtcars dataset
head(mtcars)

                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Exemple 1 : utiliser Pipe Operator pour résumer une variable

Le code suivant montre comment utiliser l’opérateur pipe ( %>% ) pour regrouper par la variable cyl , puis résumer la valeur moyenne de la variable mpg :

library(dplyr)

#summarize mean mpg grouped by cyl
mtcars %>% 
  group_by(cyl) %>% 
  summarise(mean_mpg = mean(mpg))

# A tibble: 3 x 2
    cyl mean_mpg
      
1     4     26.7
2     6     19.7
3     8     15.1

À partir du résultat, nous pouvons voir :

  • La valeur moyenne mpg pour les voitures avec une valeur cyl de 4 est de 26,7 .
  • La valeur moyenne mpg pour les voitures avec une valeur cyl de 6 est de 19,7 .
  • La valeur moyenne mpg pour les voitures avec une valeur cyl de 8 est de 15,1 .

Remarquez à quel point l’opérateur de canal facilite également l’interprétation du code.

En gros, il dit :

  • Prenez la trame de données mtcars .
  • Regroupez-le par la variable cyl .
  • Résumez ensuite la valeur moyenne de la variable mpg .

Exemple 2 : utiliser l’opérateur Pipe pour regrouper et résumer plusieurs variables

Le code suivant montre comment utiliser l’opérateur pipe ( %>% ) pour regrouper par les variables cyl et am , puis résumer la moyenne de la variable mpg et l’écart type de la variable hp :

library(dplyr)

#summarize mean mpg and standard dev of hp grouped by cyl and am
mtcars %>% 
  group_by(cyl, am) %>% 
  summarise(mean_mpg = mean(mpg),
            sd_hp = sd(hp))

# A tibble: 6 x 4
# Groups:   cyl [3]
    cyl    am mean_mpg sd_hp
        
1     4     0     22.9 19.7 
2     4     1     28.1 22.7 
3     6     0     19.1 9.18
4     6     1     20.6 37.5 
5     8     0     15.0 33.4 
6     8     1     15.4 50.2 

À partir du résultat, nous pouvons voir :

  • Pour les voitures avec une valeur cyl de 4 et une valeur am de 0, la valeur moyenne mpg est de 22,9 et l’écart type de la valeur hp est de 19,7 .
  • Pour les voitures avec une valeur cyl de 4 et une valeur am de 1, la valeur moyenne mpg est de 28,1 et l’écart type de la valeur hp est de 22,7 .

Et ainsi de suite.

Encore une fois, remarquez à quel point l’opérateur de canalisations facilite également l’interprétation du code.

En gros, il dit :

  • Prenez la trame de données mtcars .
  • Regroupez-le par les variables cyl et am .
  • Résumez ensuite la valeur moyenne de la variable mpg et l’écart type de la variable hp .

Exemple 3 : utiliser l’opérateur Pipe pour créer de nouvelles variables

Le code suivant montre comment utiliser l’opérateur pipe ( %>% ) avec la fonction mutate du package dplyr pour créer deux nouvelles variables dans le bloc de données mtcars :

library(dplyr)

#add two new variables in mtcars
new_mtcars <- mtcars %>%
                mutate(mpg2 = mpg*2,
                       mpg_root = sqrt(mpg))

#view first six rows of new data frame
head(new_mtcars)

   mpg cyl disp  hp drat    wt  qsec vs am gear carb mpg2 mpg_root
1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 42.0 4.582576
2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 42.0 4.582576
3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 45.6 4.774935
4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 42.8 4.626013
5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 37.4 4.324350
6 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1 36.2 4.254409

À partir du résultat, nous pouvons voir :

  • La nouvelle colonne mpg2 contient les valeurs de la colonne mpg multipliées par 2.
  • La nouvelle colonne mpg_root contient la racine carrée des valeurs de la colonne mpg .

Encore une fois, remarquez à quel point l’opérateur de canalisations facilite également l’interprétation du code.

En gros, il dit :

  • Prenez la trame de données mtcars .
  • Créez une nouvelle colonne appelée mpg2 et une nouvelle colonne appelée mpg_root .

Connexe : Comment utiliser la fonction transmute() dans dplyr

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment utiliser l’opérateur Tilde (~) dans R
Comment utiliser l’opérateur de signe dollar ($) dans R
Comment utiliser l’opérateur « NOT IN » dans R
Comment utiliser l’opérateur %in% dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *