[R-br] Bando de dado .txt

Rodrigo Coster rcoster em gmail.com
Domingo Outubro 2 17:22:45 BRT 2016


André,

Com o pacote SAScii é fácil transformar uma sintaxe de leitura SAS em um
read.fwf (ou read_fwf do pacote readr). Segue o comando para ler com o
readr e transformar em data.table por referência em seguida. O comando de
leitura demora (depois de 5 minutos eu cansei e fui fazer outras coisas,
então não sei o tempo total) e só funciona em sistemas 64bits. Se tu
quiser, pode ficar apertando ctrl+l para atualizar a barra de progresso.

library(SAScii)
library(data.table)
library(readr)
setwd('C:/Coisas/ENEM2011')
estrutura <- parse.SAScii('INPUTS/SAS/INPUT_SAS_ENEM_2011.sas', beginline =
1 , lrecl = NULL )
estrutura # Apenas para ver o conteúdo da variável

dados <- read_fwf('DADOS/DADOS_ENEM_2011.TXT', fwf_widths(estrutura$width,
col_names = estrutura$varname), col_types = paste(ifelse(estrutura$char,
'c', 'n'), collapse = ''))
setDT(dados) # Transforma um data.frame em data.table por referência

dados
dados[, mean(NU_NT_MT, na.rm = TRUE), keyby = UF_INSC]

E eu devo ter o arquivo read.SAScii.sqlite.R, posso te enviar tb.



[]'s



2016-10-02 14:09 GMT-03:00 Andre Oliveira via R-br <r-br em listas.c3sl.ufpr.br
>:

> A função read.SAScii.sqlite.R não está disponível mais!
>
> André Oliveira Souza. Graduação em Matemática, mestrado em estatística
> aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito
> Santo.  IFES
>
>
> Em Domingo, 2 de Outubro de 2016 9:04, Andre Oliveira via R-br <
> r-br em listas.c3sl.ufpr.br> escreveu:
>
>
> Oi Marcos,
> obrigado pelas sugestões. Eu estava indo muito bem com a  data.table,
> tentei library(ff) e library(ffbase), mas  sem sucesso.
>
>
> André Oliveira Souza. Graduação em Matemática, mestrado em estatística
> aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito
> Santo.  IFES
>
>
> Em Domingo, 2 de Outubro de 2016 9:00, Marcos Silva <
> marcosfs2006 em gmail.com> escreveu:
>
>
> Dá uma olhada nesse post:
>
> http://rcoster.blogspot.com.br/2014/02/lendo-grandes-bancos-de-dados.html
>
> Em 2 de outubro de 2016 08:36, Marcos Silva <marcosfs2006 em gmail.com>
> escreveu:
>
> André,
>
> Este tipo de arquivo não tem um caractere delimitador, tal como virgula,
> ponto e virgula, pipe ("|"), Você não vai conseguir importar com
> read.table() e derivações (read.csv(), read.csv2()) ou mesmo com fread().
>
> Mas para vc "ler" esse arquivo, vc precisa saber qual o comprimento de
> cada variável (quantidade de caracteres que ocupa no arquivo), informação
> essa que deveria estar no dicionário de variáveis.
>
> Este tipo de arquivo vc importa com read.fwf() ou read_fwf() do pacote
> readr. Mas como essa base é muito grande, recomendo utilizar algum pacote,
> a exemplo do pacote LaF. Existem outras possibilidades talvez melhores.
>
>
>
>
>
>
> Em 2 de outubro de 2016 03:13, Andre Oliveira <andreolsouza em yahoo.com.br>
> escreveu:
>
> Oi Marcos,
> neste dicionário fala que é  formato em formato ASCII. Não tem mais
> instruções pelo que percebi. Descreve os nomes da varáveis também!
>
> André Oliveira Souza. Graduação em Matemática, mestrado em estatística
> aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito
> Santo.  IFES
>
>
> Em Domingo, 2 de Outubro de 2016 0:13, Marcos Silva <
> marcosfs2006 em gmail.com> escreveu:
>
>
> Acho que este e um arquivo de formato fixo. Vc vai precisar do dicionario
> de dados para importar. Normalmente este dicionario e disponibilizado com
> os dados pelo inep.
>
> Em 01/10/2016 22:31, "Andre Oliveira via R-br" <r-br em listas.c3sl.ufpr.br>
> escreveu:
>
> Boa noite,
> não estou conseguindo identificar o motivo de não abrir este arquivo .txt
> corretamente, ele tem em torno de 6.3 GB
> <http://portal.inep.gov.br/basica-levantamentos-microdados>
> Alguém teria uma dica para compartilhar? Acredito que não estou
> trabalhando corretamente!
>
> library(data.table)
> readLines("DADOS_ENEM_2011. TXT", n = 1)
>
>
> *[1] "3000000000012011 2803548708SAO BERNARDO DO
> CAMPO
>
> SP110000000000000000000011        .      .
>
>
> ...3548708SAO BERNARDO DO CAMPO
>
>                                              SP1111   577.10   576.00
> 575.50   737. 10CEBDCACBEAABBAABAEBDCABDCDEA AADCBBEBADDBEBECDDEECABABEBDDE
> BAEADCACABCBBECADDAADBADDAABAB CAEEAEAEDDDAAEEBDECADCEABDDBAE
> CAAABDAEBCCACBAECBAEBECCAAEBAB ECECCDDAACDADADBACCBAADCAECCCE
> DD1241201251290CECDDACBCAEBEBB ACEEDCAEBDAEDADBEBBDDADCBCBACD
> DEECEBABAADDEBAECDCACEDCBBEBCD CAADBADDDBAEACAEEDBDBDDCAEDDDA
> CDEBBECAACDABADBAECCEADDCEBCBA CBAEEBAEEECCEEEBCBECEBADCBDBEA
> DCDBDCCCBADCAECCCCDDP   140.00   140.00   140.00   140.00    60.00
> 620.000 .       .      .
>                                                             *
>
> require(bit64)
> enem2011<- fread("DADOS_ENEM_2011.TXT", nrow = 1, header = TRUE, sep=";")
> head(enem2011)
>
> 3000000000012011 2803548708SAO BERNARDO DO CAMPO
>
>                                              SP110000000000000000000011
>    .      .
>
>                                   ...3548708SAO BERNARDO DO
> CAMPO
>
> SP1111   577.10   576.00   575.50   737. 10CEBDCACBEAABBAABAEBDCABDCDEA
> AADCBBEBADDBEBECDDEECABABEBDDE BAEADCACABCBBECADDAADBADDAABAB
> CAEEAEAEDDDAAEEBDECADCEABDDBAE CAAABDAEBCCACBAECBAEBECCAAEBAB
> ECECCDDAACDADADBACCBAADCAECCCE DD1241201251290CECDDACBCAEBEBB
> ACEEDCAEBDAEDADBEBBDDADCBCBACD DEECEBABAADDEBAECDCACEDCBBEBCD
> CAADBADDDBAEACAEEDBDBDDCAEDDDA CDEBBECAACDABADBAECCEADDCEBCBA
> CBAEEBAEEECCEEEBCBECEBADCBDBEA DCDBDCCCBADCAECCCCDDP   140.00   140.00
> 140.00   140.00    60.00   620.000 .       .
> .
>
>                                   ...
> 1: 3000000000022011 2214125506SAO JOSE DOS PINHAIS
>
>
> PR110000000000000000000011        .      .
>
>
> ...4125506SAO JOSE DOS PINHAIS
>
>                                                 PR0000      .
> .        .        .
>
>
>                                   1211171251290DCEACDBECBCAEBACB
> EAECEDEDAABDBEDBBDDDCABCBDCAED EBCEAEDBDAACACECDBBCACEDCDCBAE
> ADADBBDDEAABAEEDBDBDDCAEDDDACD EBBECAACDABADBAECCEADDCEBCBACB
> AEEBAEEECCEEEBCBECEBADCBDBEADC DBDCCCBADCAECCCCDDF     0.00     0.00
> 0.00     0.00     0.00     0.000 .       .
> .
>
> obrigado.
>
>
> André Oliveira Souza. Graduação em Matemática, mestrado em estatística
> aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito
> Santo.  IFES
>
> ______________________________ _________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/ cgi-bin/mailman/listinfo/r-br
> <https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br>
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br- guia
> <http://www.leg.ufpr.br/r-br-guia>) e forneça código mínimo reproduzível.
>
>
>
>
>
>
> --
> Marcos F. Silva
> http://sites.google.com/site/ marcosfs2006
> <http://sites.google.com/site/marcosfs2006>
>
>
>
>
> --
> Marcos F. Silva
> http://sites.google.com/site/marcosfs2006
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia
> ) e forne� c�igo m�imo reproduz�el.
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20161002/fe0156c3/attachment-0001.html>


Mais detalhes sobre a lista de discussão R-br