Como usar o operador pipe em r (com exemplos)


Você pode usar o operador pipe ( %>% ) em R para “canalizar” uma sequência de operações juntas.

Este operador é mais comumente usado com o pacote dplyr em R para executar uma sequência de operações em um quadro de dados.

A sintaxe básica do operador pipe é:

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

O operador de pipe simplesmente passa os resultados de uma operação para a próxima operação abaixo dela.

A vantagem de usar o operador pipe é que ele torna o código extremamente fácil de ler.

Os exemplos a seguir mostram como usar o operador pipe em diferentes cenários com o conjunto de dados mtcars integrado ao 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

Exemplo 1: Use o operador Pipe para resumir uma variável

O código a seguir mostra como usar o operador pipe ( %>% ) para agrupar pela variável cyl e depois resumir o valor médio da variável 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

Pelo resultado podemos ver:

  • O valor médio de mpg para carros com valor de cilindrada 4 é 26,7 .
  • O valor médio de mpg para carros com valor de cilindrada 6 é 19,7 .
  • O valor médio de mpg para carros com valor de cilindrada de 8 é 15,1 .

Observe como o operador pipe também facilita a interpretação do código.

Basicamente, ele diz:

  • Pegue o quadro de dados mtcars .
  • Agrupe-o pela variável cil .
  • Em seguida, resuma o valor médio da variável mpg .

Exemplo 2: Use o operador Pipe para agrupar e resumir múltiplas variáveis

O código a seguir mostra como usar o operador pipe ( %>% ) para agrupar pelas variáveis cil e am e , em seguida, resumir a média da variável mpg e o desvio padrão da variável 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 

Pelo resultado podemos ver:

  • Para carros com valor cil 4 e valor am 0, o valor médio de mpg é 22,9 e o desvio padrão do valor hp é 19,7 .
  • Para carros com valor cil 4 e valor am 1, o valor médio de mpg é 28,1 e o desvio padrão do valor hp é 22,7 .

E assim por diante.

Novamente, observe como o operador pipe também facilita a interpretação do código.

Basicamente, ele diz:

  • Pegue o quadro de dados mtcars .
  • Agrupe-o pelas variáveis cyl e am .
  • Em seguida, resuma o valor médio da variável mpg e o desvio padrão da variável hp .

Exemplo 3: Use o operador Pipe para criar novas variáveis

O código a seguir mostra como usar o operador pipe ( %>% ) com a função mutate no pacote dplyr para criar duas novas variáveis no quadro de dados 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

Pelo resultado podemos ver:

  • A nova coluna mpg2 contém os valores da coluna mpg multiplicados por 2.
  • A nova coluna mpg_root contém a raiz quadrada dos valores da coluna mpg .

Novamente, observe como o operador pipe também facilita a interpretação do código.

Basicamente, ele diz:

  • Pegue o quadro de dados mtcars .
  • Crie uma nova coluna chamada mpg2 e uma nova coluna chamada mpg_root .

Relacionado: Como usar a função transmute() no dplyr

Recursos adicionais

Os tutoriais a seguir explicam como usar outras funções comuns em R:

Como usar o operador Til (~) em R
Como usar o operador cifrão ($) em R
Como usar o operador “NOT IN” em R
Como usar o operador %in% em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *