Come utilizzare l'operatore pipe in r (con esempi)


È possibile utilizzare l’operatore pipe ( %>% ) in R per “convogliare” una sequenza di operazioni insieme.

Questo operatore viene comunemente utilizzato con il pacchetto dplyr in R per eseguire una sequenza di operazioni su un frame di dati.

La sintassi di base dell’operatore pipe è:

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

L’operatore del tubo passa semplicemente i risultati di un’operazione all’operazione successiva sottostante.

Il vantaggio dell’utilizzo dell’operatore pipe è che rende il codice estremamente facile da leggere.

Gli esempi seguenti mostrano come utilizzare l’operatore pipe in diversi scenari con il set di dati mtcars integrato in 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

Esempio 1: utilizzare l’operatore Pipe per riepilogare una variabile

Il codice seguente mostra come utilizzare l’operatore pipe ( %>% ) per raggruppare in base alla variabile cyl e quindi riepilogare il valore medio della variabile mpg :

 library (dplyr)

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

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

Dal risultato possiamo vedere:

  • Il valore medio mpg per le auto con un valore di cil di 4 è 26,7 .
  • Il valore medio mpg per le auto con un valore di cil di 6 è 19,7 .
  • Il valore medio mpg per le auto con un valore di cil di 8 è 15,1 .

Notare come l’operatore pipe semplifica anche l’interpretazione del codice.

In sostanza, dice:

  • Prendi il data frame mtcars .
  • Raggruppalo con la variabile cyl .
  • Quindi riepilogare il valore medio della variabile mpg .

Esempio 2: utilizzare l’operatore Pipe per raggruppare e riepilogare più variabili

Il codice seguente mostra come utilizzare l’operatore pipe ( %>% ) per raggruppare in base alle variabili cyl e am , quindi riassumere la media della variabile mpg e la deviazione standard della variabile hp :

 library (dplyr)

#summarize mean mpg and standard dev of hp grouped by cyl and am
mtcars %>% 
  group_by(cyl, am) %>% 
  summarize(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 

Dal risultato possiamo vedere:

  • Per le auto con un valore cil di 4 e un valore am di 0, il valore medio di mpg è 22,9 e la deviazione standard del valore CV è 19,7 .
  • Per le auto con un valore cil di 4 e un valore am di 1, il valore medio di mpg è 28,1 e la deviazione standard del valore CV è 22,7 .

E così via.

Ancora una volta, notate come l’operatore pipe semplifica anche l’interpretazione del codice.

In sostanza, dice:

  • Prendi il data frame mtcars .
  • Raggruppalo con le variabili cyl e am .
  • Quindi riepilogare il valore medio della variabile mpg e la deviazione standard della variabile hp .

Esempio 3: utilizzare l’operatore Pipe per creare nuove variabili

Il codice seguente mostra come utilizzare l’operatore pipe ( %>% ) con la funzione mutate nel pacchetto dplyr per creare due nuove variabili nel frame di dati 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

Dal risultato possiamo vedere:

  • La nuova colonna mpg2 contiene i valori della colonna mpg moltiplicati per 2.
  • La nuova colonna mpg_root contiene la radice quadrata dei valori nella colonna mpg .

Ancora una volta, notate come l’operatore pipe semplifica anche l’interpretazione del codice.

In sostanza, dice:

  • Prendi il data frame mtcars .
  • Crea una nuova colonna chiamata mpg2 e una nuova colonna chiamata mpg_root .

Correlati: come utilizzare la funzione transmute() in dplyr

Risorse addizionali

I seguenti tutorial spiegano come utilizzare altre funzioni comuni in R:

Come utilizzare l’operatore Tilde (~) in R
Come utilizzare l’operatore del segno del dollaro ($) in R
Come utilizzare l’operatore “NOT IN” in R
Come utilizzare l’operatore %in% in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *