Manipulando bases de dados com R

30/06/2022

Linguagem R

É muito comum na área da ciência de dados recebermos bases de dados que, ao tentarmos analisá-las de imediato, nos deparamos com incontáveis problemas que podem prejudicar os procedimentos da análise de dados ou até mesmo impossibilitar a realização de tal análise. Bem, caso você, leitor, esteja em alguma dessas situações, muito provavelmente o que você deve estar precisando é de uma boa manipulação em sua base de dados.

Mas o que é manipulação de dados?

A manipulação de dados nada mais é do que organizar e reestruturar uma base de dados de tal forma que ela esteja em boas condições para análise. O processo de manipular um conjunto de dados geralmente é a etapa mais demorada da análise de dados como um todo, uma vez que é bastante trabalhoso a depender da sua natureza e, principalmente, se os dados foram coletados sem qualquer tipo de planejamento.

Uma boa manipulação de dados abrange pontos importantes a serem trabalhados, tais como: organizar as informações e remover aquelas que não são de interesse do pesquisador. O primeiro ponto se deve ao fato de que uma organização ruim na base de dados pode induzir a conclusões errôneas, assim como impedir completamente que a análise seja realizada dependendo do software que está sendo usado. O segundo ponto é que o excesso de informações, isto é, dados que não são relevantes para o analista ou que não fazem qualquer sentido para o que está sendo estudado, apenas poluem a base de dados, dificultando (ou mesmo invalidando) a análise e prolongando seu processo até a obtenção dos resultados.

Felizmente, existem diversas ferramentas, e boas, para a manipulação de dados. O software R, que é um ambiente de análise de dados extremamente versátil, é uma delas. Para conhecer mais sobre o R e realizar seus primeiros passos com essa ferramenta, recomendo a leitura do meu outro post, o Iniciando na linguagem R.

Como manipular bases de dados com R?

No R é muito comum trabalharmos com pacotes (ou bibliotecas), recursos que, quando carregados no ambiente de trabalho do R, disponibilizam várias funções voltadas para resolver problemas de diferentes naturezas (aprendizado de máquina, mineração de texto, testes estatísticos etc). Neste post, meu foco será em três pacotes exclusivos para organização e manipulação de dados: {tibble}, {tidyr} e {dplyr}.

tibble e tidyr

No R, costumamos trabalhar com conjunto de dados cuja estrutura é um objeto do tipo data frame em que, normalmente, as colunas representam as variáveis e as linhas representam as observações. Além disso, também existem os objetos do tipo tibble, que podem ser reconhecidos como uma evolução dos data frames, porém mais amigáveis para com o usuário. Vejamos, logo abaixo, um exemplo de tibble contendo os dados da vigilância de Síndrome Respiratória Aguda Grave (SRAG) em 2020, no Brasil.

Note que, ao usar a função as_tibble( ), do pacote {tibble}, são apresentadas informações importantes como as dimensões (linhas x colunas), o nome das colunas (ou das variáveis) com suas respectivas classes e as 10 primeiras linhas (ou das 10 primeiras observações) da base de dados data_2020. Tudo de maneira limpa e organizada. Note, ainda, que é possível ter um panorama da base de uma forma bem compacta, mesmo ela tendo mais de 1 milhão de linhas. Para se ter uma ideia, se visualizarmos essa mesma base como um objeto data frame no console do R, devido ao seu grande volume de dados, não teríamos algo organizado e interpretável como num tibble, por exemplo.

Como já mencionei, é de nosso interesse ter um conjunto de dados que seja fácil de trabalhar, no sentido de realizar as análises, quaisquer que sejam elas, sem grandes dificuldades. Com esse objetivo, é recomendável ter uma base de dados na qual cada variável seja uma coluna e cada observação seja uma linha. Uma base que respeita essa estrutura é chamada de base de dados tidy.

Um tibble, por exemplo, não estará necessariamente na forma tidy. Nesse caso, podemos recorrer ao pacote {tidyr}, que possui recursos para deixar uma base de dados no formato tidy (processo conhecido como data tidying). Uma das principais utilidades desse pacote é que podemos “pivotar” a base, ou seja, colocá-la em formato longo (long format), onde cada indivíduo terá dados em mais de uma linha, ou formato amplo (wide format), onde cada linha representa um indivíduo – o que vai de acordo com os princípios de uma base tidy. Outra de suas funcionalidades é poder separar variáveis que estão concatenadas em uma única coluna utilizando a função separate() ou concatenar várias variáveis em uma única coluna com a função unite(). Para aprender mais sobre os pacotes {tibble} e o {tidyr} e como utilizar suas funções, recomendo a leitura do post Como organizar seu banco de dados com tibble e tidyr.

dplyr

Agora que sabemos estruturar devidamente uma base de dados, podemos começar a manipulá-la de maneira que os resultados sejam satisfatoriamente obtidos. Podemos utilizar nessa etapa o pacote {dplyr}, com o qual é possível, por exemplo, fazer seleções de colunas específicas com a função select(), reordenar a base com a função arrange(), filtrar informações segundo alguma característica de interesse com a função filter(), criar ou modificar colunas com a função mutate(), agrupar a base com a função group_by() ou sumarizar a base com a função summarise(). De fato, tudo isso pode ser feito com as funções base do próprio R. A vantagem de usar o {dplyr} é que os scripts ficam mais organizados e, consequentemente, mais simples de entender o que está sendo feito. Mais ainda se combinar as funções do {dplyr} com o operador pipe (%>%), o qual pertence ao pacote {magrittr} e é carregado automaticamente de forma implícita pelo {dplyr}. Ainda por cima, o dplyr utiliza as linguagens de programação C e C++ na maioria de suas funções, fazendo com que os códigos sejam mais rápidos e, portanto, que a análise dos dados seja mais eficiente. Para entender como funciona cada uma dessas funções do {dplyr} com mais detalhes, recomendo a leitura do post Utilizando o pacote dplyr, lá, elas são aplicadas a um conjunto de dados real.

Considerações finais

Vimos a importância da organização e manipulação de uma base de dados para analisar dados, sem contar as ferramentas que podemos utilizar para estruturá-la de modo ideal e eficiente. Todos os pacotes que mencionei fazem parte de um superpacote chamado {tidyverse}, que também possui outros pacotes muito poderosos para manipular e visualizar dados. Para entender melhor o {tidyverse}, a leitura do post Mergulhando no tidyverse pode ser um bom começo.

Espero que este post tenha dado um bom entendimento e direcionamento a respeito da manipulação dos dados, processo que pode ser tão desgastante se utilizadas ferramentas pouco hábeis ou inadequadas. Para comentários, sugestões e colaborações científicas, entre em contato conosco através do e-mail  ou nas nossas redes, Twitter ou Instagram.