Entendendo o basicão de SQL para usuários de R

Trabalhar com dados e aplicar todo o ciclo de análise em uma única ferramenta, como a linguagem R, é ótimo e poupa tempo. No entanto, há situações em que é necessário recorrer a outras ferramentas para executar etapas específicas, como no caso de processar um volume de dados maior do que a memória. Para a felicidade dos usuários de R, mesmo nestas situações desafiantes, é possível utilizar pacotes que integram SQL com a linguagem R, permitindo escrever e executar comandos de SQL sem precisar trocar de tela!

Neste artigo, traduzimos 5 tarefas rotineiras de quem trabalha com dados, de R para SQL. O objetivo é mostrar que a sintaxe do código é parecida entre as linguagens e que é possível utilizar apenas uma interface que integra ambas as ferramentas. Mostramos exemplos com dados econômicos do Brasil.

Aprenda mais sobre SQL com o curso de SQL para Economia e Finanças da Análise Macro.

Dados de exemplo

Para exemplificar as 5 tarefas rotineitas de análise de dados em R e SQL, utilizaremos os dados desagregados do IPCA divulgados pelo IBGE em seu site. Abaixo uma amostra das tabelas, das quais criamos um banco de dados SQL para os exemplos:

Para obter o código deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

Tabela de variação mensal do IPCA:
# A tibble: 6 × 18
  Item      RJ   POA    BH   REC    SP    DF   BEL   FOR   SAL   CUR   GOI   VIT
  <chr>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ÍNDIC…  0.33  0.56  0.71  0.88  0.62  0.5   1.05  0.61  0.39  0.75  0.55  0.65
2 ALIME…  0.49 -0.46  1.25  0.72  0.77  0.41  0.61  0.75  0.84  0.47  1.21  0.77
3 ALIME…  0.34 -0.73  1.27  0.86  0.97  0.86  0.71  0.91  0.65  0.58  1.34  0.7 
4 CEREA…  4.79  3.19  5.43  3.86  5.04  2.39  2.33  5.05  3.72  3.97  5.32  6.94
5 ARROZ   4.07  3.43  4.08  3.06  4.09  2.75  1.5   5.58  1.43  4.29  3.63  6.1 
6 FEIJÃ… NA    NA    NA     5.38 NA    NA    NA    NA     6.23 NA    NA    NA   
# ℹ 5 more variables: CG <dbl>, RB <dbl>, SL <dbl>, AJU <dbl>, NACIONAL <dbl>

Tabela de peso mensal do IPCA:
# A tibble: 6 × 18
  Item         RJ     POA      BH     REC      SP      DF     BEL    FOR     SAL
  <chr>     <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>  <dbl>   <dbl>
1 ÍNDICE… 100     100     100     100     100     100     100     100    100    
2 ALIMEN…  21.0    22.4    22.8    24.4    20.5    17.5    28.0    24.8   23.4  
3 ALIMEN…  15.3    16.6    17.0    18.0    14.4    11.0    22.6    19.1   17.7  
4 CEREAI…   0.892   0.593   0.905   0.894   0.721   0.511   0.983   1.57   0.859
5 ARROZ     0.61    0.406   0.672   0.450   0.522   0.327   0.685   1.13   0.538
6 FEIJÃO…  NA      NA      NA       0.115  NA      NA      NA      NA      0.114
# ℹ 8 more variables: CUR <dbl>, GOI <dbl>, VIT <dbl>, CG <dbl>, RB <dbl>,
#   SL <dbl>, AJU <dbl>, NACIONAL <dbl>

Exemplo 1: selecionando colunas de uma tabela

O primeiro exemplo consiste em selecionar as colunas “Item”, “RJ” e “SP” da tabela de variação mensal do IPCA. O procedimento é bem simples em ambas as linguagens e abaixo exibimos as primeiras 6 linhas do resultado das operações:

# A tibble: 6 × 3
  Item                                  RJ    SP
  <chr>                              <dbl> <dbl>
1 ÍNDICE GERAL                        0.33  0.62
2 ALIMENTAÇÃO E BEBIDAS               0.49  0.77
3 ALIMENTAÇÃO NO DOMICÍLIO            0.34  0.97
4 CEREAIS, LEGUMINOSAS E OLEAGINOSAS  4.79  5.04
5 ARROZ                               4.07  4.09
6 FEIJÃO-MULATINHO                   NA    NA   
Estamos usando o R para aplicar essa rotina com códigos de pacotes da própria linguagem e para aplicar expressões equivalentes de SQL, sem precisar trocar de tela/IDE. Ambos as operações retornam o mesmo resultado.

Exemplo 2: filtrando linhas de uma tabela

No segundo exemplo, filtramos as linhas que possuam as observações “ALIMENTAÇÃO E BEBIDAS”, “HABITAÇÃO” ou “DESPESAS PESSOAIS” na coluna “Item” da tabela de variação mensal do IPCA. Abaixo exibimos as primeiras 6 linhas do resultado das operações:

# A tibble: 3 × 18
  Item      RJ   POA    BH   REC    SP    DF   BEL   FOR   SAL   CUR   GOI   VIT
  <chr>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ALIME…  0.49 -0.46  1.25  0.72  0.77  0.41  0.61  0.75  0.84  0.47  1.21  0.77
2 HABIT… -0.62  1.13  0.36 -0.15  0     0.66  1.38  0.55  0.07  0.23  1.01  0.12
3 DESPE…  0.45  0.65  0.15  0.48  0.92  0.84  0.51  0.23  0.66  0.18  0.27  0.61
# ℹ 5 more variables: CG <dbl>, RB <dbl>, SL <dbl>, AJU <dbl>, NACIONAL <dbl>

Exemplo 3: ordenando valores de uma coluna da tabela

No terceiro exemplo, ordenamos decrescentemente a tabela de variação mensal do IPCA com base na coluna numérica “NACIONAL”. Abaixo exibimos as primeiras 6 linhas do resultado das operações:

# A tibble: 6 × 18
  Item      RJ   POA    BH   REC    SP    DF   BEL   FOR   SAL   CUR   GOI   VIT
  <chr>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 LARAN… NA    21.2   NA   NA     NA   NA     NA   NA    NA     NA    NA    NA  
2 PEIXE… NA    NA     NA   NA     NA    1.27  18.9 NA    NA     NA    NA    NA  
3 TOMATE  6.94 -0.72  20.3 16.6   14.7 23.6   10.2 31.4   8.22  21.8  16.8  16.9
4 BANAN… NA    NA     NA   NA     NA   NA     NA   NA    NA     NA    14.3  NA  
5 TRANS…  2.19 33.9   13.8  3.09  11.1  5.54  NA    2.74 -0.48  NA    12.0  13.9
6 COENT… NA    NA     NA   10.4   NA   NA     NA   NA     6.36  NA    NA    NA  
# ℹ 5 more variables: CG <dbl>, RB <dbl>, SL <dbl>, AJU <dbl>, NACIONAL <dbl>

Exemplo 4: sumarizando dados de uma tabela

No quarto exemplo, calculamos a média da coluna “NACIONAL”. Abaixo exibimos o resultado das operações:

# A tibble: 1 × 1
  media
  <dbl>
1 0.771

Exemplo 5: cruzando dados de duas tabelas

Por fim, no quinto exemplo, fazemos um cruzamento do tipo inner join com as tabelas de variação e peso mensal do IPCA, selecionando a coluna “Item” e as colunas de variação e peso nacional de cada tabela, além de filtrar o “Item” correspondente à “ÍNDICE GERAL”. Abaixo exibimos o resultado das operações:

# A tibble: 1 × 3
  Item         Variacao  Peso
  <chr>           <dbl> <dbl>
1 ÍNDICE GERAL     0.62   100

Conclusão

Neste artigo, traduzimos 5 tarefas rotineiras de quem trabalha com dados, de R para SQL. O objetivo é mostrar que a sintaxe do código é parecida entre as linguagens e que é possível utilizar apenas uma interface que integra ambas as ferramentas. Mostramos exemplos com dados econômicos do Brasil.

Quer aprender mais?

Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise do Censo Demográfico com o R

Como podemos analisar dados do Censo Demográfico para produzir pesquisas e implementar políticas públicas? Mostramos nesta postagem o resultado de uma breve análise dos dados preliminares do Censo Demográfico de 2022 usando o R.

Deploy de modelos com Python + Shinylive + GitHub gastando ZERO reais

Colocar modelos em produção pode ser um grande desafio. Lidar com custos monetários, infraestrutura operacional e complexidades de códigos e ferramentas pode acabar matando potenciais projetos. Uma solução que elimina todos estes obstáculos é a recém lançada Shinylive. Neste artigo mostramos um exemplo com um modelo de previsão para o preço do petróleo Brent.

Como automatizar tarefas repetitivas usando Python? Um exemplo para largar o Excel

Manter relatórios diários com dados e análises atualizados é um desafio, pois envolve várias etapas: coleta de dados, tratamento de informações, produção de análises e atualização de relatório. Para superar este desafio algumas ferramentas como Python + Quarto + GitHub podem ser usadas para automatizar tudo que for automatizável. Neste artigo mostramos um exemplo com dados do mercado financeiro.

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.