Mostrando postagens com marcador bigdata. Mostrar todas as postagens
Mostrando postagens com marcador bigdata. Mostrar todas as postagens

Analisando grandes bancos de dados no R.

Dando continuidade ao post anterior (eu juro que o próximo post não vai ser 'Fazendo algo em grandes bancos de dados no R'), vamos dar uma olhada em outro pacote que auxilia na manipulação de bancos grandes no R: o data.table. Mais uma vez, usarei os dados do ENEM 2011 como exemplo.

Como o site do data.table descreve, ele é uma versão mais incrementada do data.frame, o formato padrão de leitura de arquivos externos do R e com uma sintaxe é bastante parecida, facilitando bastante o aprendizado. A ideia do post é apresentar as principais funções do data.table e mostrar o ganho computacional dele. Ao final, um link com todos o código utilizado.

Lendo grandes bancos de dados no R.

Nada mais adequado do que a primeira postagem verdadeira do blog ser sobre o primeiro passo na análise de dados: carregar os dados para o programa. Eu nunca tive problema com isso, algumas vezes o R demorava para ler o banco, mas nunca me importei - afinal de contas, lia. Mas desde que entrei para o ObservaPOA essa realidade mudou. E me trouxe problemas. Sempre me falaram - e eu, como bom papagaio, repetia - que o R não era bom com bancos de dados grandes, e eu finalmente pude ver isso.

Ao baixar os microdados do Censo Escolar, me deparei com um arquivo de aproximados 600mb no formato largura fixa que, ao tentar ler com read.fwf(), obtive uma mensagem de erro após mais de 30 minutos de processamento. Perguntando em fóruns, consegui ler os dados. Perfeito, hora de ir para o próximo banco de dados! Fui para os microdados do ENEM, e me deparei com algo pior: um arquivo de 6gb que nem os comandos que funcionaram no Censo Escolar conseguiram ler. E la fui eu em busca de uma solução.

A solução encontrada foi utilizar o pacote RSQLite, que utiliza SQLite para manipular bancos de dados. A seguir, mostrarei 3 maneiras diferentes de usar o RSQLite, que variam de acordo com o formato do banco de dados: arquivo formatado com delimitador e arquivo formatado com largura fixa com e sem sintaxe SAS para leitura. Para tal, utilizarei os microdados do ENEM 2012 (delimitadores) e ENEM 2011 (largura fixa). Ao final, um link para os códigos utilizados junto com algumas instruções.