Um pequeno experimento com uso de funções em Análise de Dados com R no Universo Tidy

July 6, 2017 no comments Posted in Análise de Dados, R

O tidyverse ou universo ‘arrumado’ é uma coleção de pacotes R que compartilham filosofias comuns e são projetados para trabalhar em conjunto de dados ditos “tidy” e que podem ser melhor conhecidos no site http://tidyverse.org/   . Grande parte dos pacotes foi desenvolvida pelo Hadley Wickham.

Se você é novo no tidyverse o melhor lugar para aprender a philsophy completa e como tudo se encaixa é o livro “R para de ciência dos dados” de autoria do Garrett Grolemund e do
Hadley Wickham. Este livro está disponível gratuitamente online .

A novidade que mais me interessou logo a princípio foi o  uso do tibble no lugar do data.frame. Em termos práticos de representação da informação são a mesma coisa, mas a sua manipulação é mais simples, mais direta e toda focalizada no uso de Pipes ( %>% ) e na estrutura de comandos no estilo do ‘dplyr’.  Dplyr por sua vez que merece cada vez mais uma revisão dada a enorme quantidade de funções implementadas nas versões mais recentes.

Existem N artigos interessantes sobre esse universo, mas ainda poucos na língua portuguesa. Espero que outros se animem.

Eu sou um usuário pouco sistemático, as vezes inicio de forma estruturada, mas com frequência me pego tendo que refatorar o código que cresceu demais sem os devidos cuidados. A medida que o código começa a ficar repetitivo quero usar funções e hoje resolvi testar como seria usar o ‘dplyr’ dentro de uma função recebendo os nomes das variáveis como parâmetros de uma função.

Em termos de operadores a coisa é meio “feia”, mas funciona que é uma maravilha.

Aqui um pequeno exemplo que pelas imagens já fica claro como proceder.

Primeiro o meu tibble, o equivalente a um data frame. 100 linhas, 9 colunas, ao imprimir primeira vantagem, observem o que tibble só imprime as 10 primeiras linhas por padrão e já exibe o tipo de dados de cada coluna, menos filtros do tipo [1:10,]  ou head(dataframe),  e muito menos um lapply( dataframe, class ) para investigar os tipos.

Um tibble quando lido de um arquivo externo ou convertido não faz aquela “eca” de converter strings em fator por padrão.

Então suponha que irei fazer N sumários de descrições dos dados usando o ‘dplyr’ e não quero ficar copiando e colando código e alterando nome de variáveis na mão. Usar funções é o racional nesse caso.

Aqui uma pequenina função que recebe o tibble,  dois parâmetros o nome da variável com a qual quero agregar/agrupar os meus dados que chamnei de group_by e outra variável expr, da qual pretendo contar ocorrências, média e soma dos seus valores.

Quais são os detalhes importantes?

  • a função enquo() que irá receber um parâmetro sem aspas, envolvê-lo para depois ser realizado como um nome de um atributo e não uma string. O ‘dplyr‘ entende que expr é uma variável que contem o nome de uma variável;
  • a função quo_name() que é realmente massa, pois irá permitir que concatenemos o nome da variável com outra string para ser usado no “lado direito” da atribuição;
  • operadores “!!”  e “:=” .

Pronto. Agora já podemos chamar a função para cada atributo de interesse e receber os sumários.

Adorei.

Para saber mais sobre Análise de Dados no Universo Tidy.

 

códigosdplyrfunçõesparâmetrosRtidyTidyverse

Leave a Comment

Related Story
%d bloggers like this: