Novo operador pipe do R

Lançada em Maio, a versão 4.1 do R trouxe algumas novidades para os usuários, como uma nova sintaxe de função anônima e uma nova engine gráfica. Entretanto, a mudança mais substancial foi a inclusão de um operador pipe nativo, o "|>". Para quem, como eu, está acostumado a utilizar o operador "%>%" do pacote magritt/tidyverse, a forma de utilização é bastante semelhante. Lembrando que operador pipe tem a função de permitir o encadeamento de uma função após a outra sem precisar criar variáveis intermediárias ou utilizar parênteses intermináveis.

A utilidade principal do pipe é melhorar a leitura do código. Por exemplo, todos as maneiras abaixo retornam o mesmo resultado.

#Variáveis intermediárias
mtcars_filt = filter(mtcars, drat > 3)
mtcars_group = group_by(mtcars_filt, gear)
mtcars_final = summarise(mtcars_group, hp = mean(hp))

#Utilizando parênteses

mtcars_final = summarise(group_by(filter(mtcars, drat > 3), gear), hp = mean(hp))

#Pipe

mtcars_final = mtcars %>%
filter(drat > 3) %>%
group_by(gear) %>%
summarise(hp = mean(hp))

Para utilizar o novo pipe, a sintaxe é exatamente a mesma, nesse caso.

#Novo pipe

mtcars_final = mtcars |>
filter(drat > 3) |>
group_by(gear) |>
summarise(hp = mean(hp))
<pre>

A vantagem mais óbvia desse novo pipe é que a utilização não requer o uso de pacotes adicionais. Entretanto, se a primeira coisa que você faz quando abre um novo script do R é digitar "library(tidyverse)", isso pode não fazer muita diferença. Além disso, ele é levemente mais eficiente, entretanto é uma diferença muito pequena para ser notada pelo usuário médio.

Agora, para quem pensa em atualizar o R e começar a utilizar o novo pipe, saiba que há dois principais problemas. O primeiro é que em alguns casos o novo pipe demanda uma sintaxe um pouco diferente. O pipe do magritt tem um elemento (".") que nós podemos colocar em casos em que o primeiro elemento da função não é lado esquerdo da expressão. Um desses casos é se estamos interessados em estimar uma regressão por pipe.

reg = mtcars %>%
lm(hp ~ gear, data = .)

O novo operador pipe não tem esse elemento. Para chegar ao mesmo resultado, precisamos fazer uma alteração, utilizando uma função anônima. Aliás, essa também é uma novidade do R 4.1, que criou o  \ (x), que nada mais é do que uma abreviação do "function(x)". O mesmo código acima fica bem menos legível.

reg = mtcars |>
(\ (x) lm(hp ~ gear, data = x))()

 

A outra dificuldade é a utilização deste pipe só é possível para usuários do R 4.1, evidentemente. Códigos escritos com esse operador não funcionarão em versões antigas do R, o que pode ser um entrave para quem trabalha com compartilhamento de código.

Assim, a adoção do novo pipe pela comunidade ainda deve demorar um tempo (isso, se de fato ela ocorrer). Portanto, a recomendação, por enquanto, é aguardar um pouco mais para substituir os pipe do magritt pelo novo pipe.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Modelo de Previsão da Dívida Bruta do Governo Geral (DBGG) para 2025

Neste exercício, contruímos um algoritmo simples de cenarização para a Dívida Bruta do Governo Geral (DBGG) em % do PIB, usando apenas dados públicos, simulações estatísticas, a literatura recente e a linguagem R. Em uma abordagem semi-automatizada, as simulações do modelo se aproximam das previsões do mercado para o ano de 2025.

Modelo de Previsão do Resultado Primário para 2025

Neste exercício, contruímos um modelo simples de previsão para o Resultado Primário do Setor Público Consolidado (acumulado em 12 meses, % PIB), usando apenas dados públicos, modelos econométricos, a literatura recente e a linguagem R. Em uma abordagem automatizada, as previsões do modelo se aproximam das previsões do mercado para o ano de 2025.

Estimando o Hiato do Produto do Brasil usando a linguagem R

Este exercício estima o Hiato do Produto do Brasil utilizando quatro métodos univariados distintos. Para lidar com o problema de fim de amostra causado por filtros univariados, incorporamos previsões do PIB provenientes de agentes econômicos e projeções simples, estendendo a série temporal além da amostra original. Todo o processo de coleta, tratamento, estimação e visualização dos hiatos foi realizado na linguagem de programação R.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.