Cruzando dados de Excel e Calc com o R


Muito famoso no meio acadêmico entre cientistas sociais, economistas e até entre os estatísticos, o R é uma linguagem e, ao mesmo tempo, um ambiente de desenvolvimento voltado para o tratamento e produção de informação. Inteiramente livre e gratuito o R é extremamente poderoso e versátil,  o que permite expandir nossa criatividade para além do tratamento estatístico mas, principalmente, gerando boas formas de analisar e visualizar o que está por trás dos dados. Todas as áreas de conhecimento podem se servir de seus benefícios e quanto a isso eu gosto da própria definição postada em seu site oficial:

R é um conjunto integrado de instalações de software para manipulação de dados, cálculo e exibição gráfica. Entre outras coisas,

  • Uma suite de tratamento e armazenamento de dados;
  • Um conjunto de operadores para cálculos em matrizes, em particular matrizes;
  • Uma grande coleção coerente e integrada de ferramentas intermediárias para análise de dados;
  • Ferramentas gráficas para análise de dados e exibição diretamente no computador ou em cópia impressa, e
  • Uma linguagem de programação bem desenvolvida, simples e eficaz (chamada ‘S’) que inclui condicionais, loops, funções recursivas definidas pelo usuário e instalações de entrada e saída. (Na verdade, a maioria das funções fornecidas pelo sistema são escritas na linguagem S).

E é por essa razão que, introdutoriamente, mostrarei apenas um dos caminhos não convencionais de utilização do R no trabalho, na faculdade e até mesmo em casa, enquanto se espera o download do filme terminar.

Como instalar o R

Não vou fazer um tutorial de como proceder com a instalação pois essa tarefa pode ser realizada facilmente baixando-se e executando-se um instalador disponível tanto para Linux como para Windows ou MacOSx. Quero, no entanto, alertar que o R é uma linguagem ou, mais especificamente, um software pelo qual executamos comandos de texto. Por isso ele pode parecerá estranho para muitas pessoas. Porém, para facilitar seu manuseio, existem interfaces muito boas que auxiliam visualmente no registro e manutenção de objetos, funções e dataframes. Para os iniciantes eu recomendo o software Rstudio (gratuito), por ser uma IDE (Ambiente de Desenvolvimento Integrado) voltada integralmente para o uso do R, mas seu uso fica a critério de cada usuário. O download do arquivo de instalação para Linux, MacOSx e Windows pode ser feito no site oficial. Se preferir, em Linux, use a linha de comando:

apt-get install r-base

O que fazer com o R?

A utilização do R depende, é claro, do perfil de cada usuário, mas considerando um ambiente de trabalho comum sabemos que é sempre bom ter por perto uma ferramenta que nos permita organizar, tratar, analisar e expor alguns dados. Veja como ele pode ser muito útil para esse tipo de tarefa.

Importar, cruzar e exportar dados de planilhas nos formatos “XLSX” ou “ODS”

Se você tem duas planilhas e deseja cruzar os dados de uma com os da outra de forma fácil basta usar o R e suas funções de importação, exportação e de tratamento de dados. Siga nossos passos e veja como proceder.

1. Inicie uma sessão no R.
2. instale os pacotes necessários (execute os comandos no terminal ou rode-os no script de sua IDE preferida):

a) Para planilhas em formato “xlsx” (Excel – Microsoft Office):

install.packages("xlsx")

b) Para planilhas em formato “ods” (Calc – Libreoffice.org):

install.packages("readODS")

4. Assesgure-se de que as planilhas estão em uma pasta que você saiba o caminho (“C://…” ou “/home/usuario/…”) e que elas tenham as condições adequadas para serem importadas, ou seja, que não tenham mesclas ou outros elementos que interferirão na disposição das linhas e colunas em que os dados estão.

Também é importante lembrar que se queremos cruzar os dados precisaremos que existam colunas de identificação que nos permitam associar as duas planilhas. Em nosso exemplo perceba que tanto em “notas” como em “situação” temos as colunas “Número” e “Nome” como chave da relação entre o conteúdo das duas planilhas. Confira como elas estão bonitinhas (apesar de que seria melhor se os cabeçalhos não contivessem acentos ou espaços):

a) Notas (“notas.xslx” ou “notas.ods”)

captura-de-tela_2016-11-12_05-20-21

b) Situação (“situacao.xslx” ou “situacao.ods”)

captura-de-tela_2016-11-12_07-19-43

Observe que tiramos, propositalmente, os dados da ordem nessa última planilha.

5. Importe os dados para as tabelas (dataframe) que iremos chamar de “notas” e “situacao” (troque “pasta” pelo caminho do diretório em que os arquivos estão):

a) Para planilhas em formato “xlsx” use:

notas <- read.xlsx2("/pasta/notas.xlsx",1)
situacao <- read.xlsx2("/pasta/situacao.xlsx",1)

b) Para planilhas em formato “ods” use:

notas <- read_ods("/pasta/notas.ods",1)
situacao <- read_ods("/pasta/situacao.ods",1)

6. Verifique se está tudo ok executando apenas o nome da tabela (“notas” por exemplo). Se a tabela for muito grande use uma função para mostrar poucas linhas como no exemplo abaixo:

head(notas)

Visualização dos dados importados do “xlsx”:

  Número    Nome Nota.1 Nota.2 Nota.3 Nota.4
1      1    João    9.4    8.2    7.1    7.4
2      2   Maria    5.6    6.6    5.5    5.3
3      3   Pedro    6.7    5.2     NA     NA
4      4   Paulo    6.2    6.1    6.1     NA
5      5  Flávia    7.3    6.2    7.4    7.9
6      6 Solange    5.1    6.2    7.9    8.1

Visualização dos dados importados do “ods”:

  Número    Nome Nota 1 Nota 2 Nota 3 Nota 4
1      1    João    9.4    8.2    7.1    7.4
2      2   Maria    5.6    6.6    5.5    5.3
3      3   Pedro    6.7    5.2   <NA>   <NA>
4      4   Paulo    6.2    6.1    6.1   <NA>
5      5  Flávia    7.3    6.2    7.4    7.9
6      6 Solange    5.1    6.2    7.9    8.1

Repita o comando para verificar a tabela “situacao”.

Apesar do resultado geral de ambos os métodos ser o mesmo, fique atento à diferença de interpretação do espaço no cabeçalho (“Nota.1” ou “Nota 1”) e despreocupe-se quanto a diferença entre formatos de apresentação dos dados nulos ou vazios (“NA” ou “<NA>”).

7. Cruze os dados

Vamos associar as duas tabelas usando a função “merge()” e armazenar os novos dados em uma nova tabela chamada “resultados”:

resultados <- merge(notas,situacao,by=c("Número","Nome"))

Observe como ficou a tabela “resultados”:

  Número    Nome Nota.1 Nota.2 Nota.3 Nota.4  Situação
1      1    João    9.4    8.2    7.1    7.4  Aprovado
2      2   Maria    5.6    6.6    5.5    5.3 Reprovado
3      3   Pedro    6.7    5.2     NA     NA  Abandono
4      4   Paulo    6.2    6.1    6.1     NA  Abandono
5      5  Flávia    7.3    6.2    7.4    7.9  Aprovado
6      6 Solange    5.1    6.2    7.9    8.1  Aprovado

8. Gere uma nova planilha “xlsx” ou “ods” com o conteúdo de “resultados” usando uma única função “write.table()” para ambos os formatos:

 write.table(resultados,"resultados.xlsx",sep = ";")

ou

 write.table(resultados,"resultados.ods",sep = ";")

Correção de problemas

Seguindo corretamente os passos acima você NÃO estará totalmente livre de que ocorram problemas na instalação de alguns pacotes. Mas como no R você tem milhares de caminhos para realizar uma mesma tarefa você pode postar suas dúvidas aqui em nosso blog procurar mais dicas nos inúmeros sites e fóruns pela internet. Ainda teremos muito o que falar sobre como usar o R para produzir gráficos, mapas entre outras coisas, por isso, aguarde nosso próximo tutorial.

Até lá!