[R-br] [R_STAT] [Dúvida] Carregar dados sem ser na memória RAM
Leandro Marino
leandromarino em leandromarino.com.br
Domingo Março 20 17:38:29 BRT 2011
*É verdade Benilton.
Posso ter entendido errado, mas certa vez assisti uma palestra do Jay
Emmerson e ele informava que a melhor forma para trabalho no bigmemory era
através de inteiros. Acredito que por não trabalhar com data.frame's e sim
matrizes. Salvo engano, não há a possibilidade no R de armazenar fatores em
matrizes, pelo que me lembro (posso estar muito enganado) ele
automaticamente converte para character.
Um pequeno exemplo:
str( matrix(factor(1:4,labels=paste('teste',1:4)),ncol=2))
chr [1:2, 1:2] "teste 1" "teste 2" "teste 3" "teste 4"
Como tenho o hábito de trabalhar com data.frames não sei muito bem como é
trabalhado no R estes outros formatos.
Tendo feito a leitura com o bigmemory existem uma série de outros pacotes
relacionados que devem ser utlizados. bigalgebra, bigtabulate ...
A terceiro opção do Benilton, para mim, é muito boa. Agora tudo depende do
uso que terá que se fazer dos dados. Eventualmente, algumas soluções podem
exigir mais trabalhos que outras...
Um abraço,
Leandro
*Atenciosamente,
Leandro Marino
http://www.leandromarino.com.br (Fotógrafo)
http://est.leandromarino.com.br/Blog (Estatístico)
Cel.: + 55 21 9845-7707
Cel.: + 55 21 8777-7907
Em 20 de março de 2011 16:56, Benilton Carvalho
<beniltoncarvalho em gmail.com>escreveu:
> Visto que um fator (no R) nao e' nada mais que um vetor de inteiros,
> entao nao vejo pq o bigmemory seria sub-otimo nesse caso... a menos
> que o numero de niveis do fator seja muito grande (no limite isso
> seria um vetor de caracteres... e esses sao armazenados em RAM).
>
> Outra alternativa, igualmente limitada no aspecto de caracteres, e' o
> pacote 'ff'.
>
> E a terceira e' usar um banco de dados de verdade.... SQLite, SQL,
> etc... e fazer um fetch apenas da porcao relevante para o passo em
> questao..
>
> b
>
> 2011/3/20 Leandro Marino <leandromarino em leandromarino.com.br>:
> > Fernando,
> >
> > na realiade o SOAR pode até ajudar, mas nas realidade ele é um mecanismo
> de
> > fazer I/O, mas quando se está utilizando o conjunto de dados ele o
> carrega
> > para memória RAM.
> >
> > Utilizo sempre o SOAR visto que tem um poder de compactação incrível de
> > dados no HD. Arquivos de 100mb apos lidos com o pacote, ficam apenas com
> > 10mb de espaço ocupado em HD. Ele também é ótimo para se trabalhar com
> uma
> > grande quantidade de conjuntos intermediários ao mesmo tempo. Mas
> > eventualemente é necessário salvá-los no HD e limpar a memória com gc().
> >
> > Neste caso específico, se o banco de dados for de apenas números
> inteiros,
> > tais quais as bases de dados do IBGE, recomendo a utilização do
> BigMemory.
> > elo que sei, ele não trabalha de forma eficiente com variáveis do tipo
> fator
> > ou caracter.
> >
> > De qualquer forma, para a importação, recomendo fortemente a exportação
> > desta base de dados em formato texto, fica muito mais fácil para se
> > trabalhar. Além de existir, opções bem eficientes para a leitura dos
> dados,
> > como a função read.lines (ótima para conjunto de dados grandes).
> >
> > Atenciosamente,
> > Leandro Marino
> > http://www.leandromarino.com.br (Fotógrafo)
> > http://est.leandromarino.com.br/Blog (Estatístico)
> > Cel.: + 55 21 9845-7707
> > Cel.: + 55 21 8777-7907
> >
> >
> >
> > Em 20 de março de 2011 11:24, Fernando Mayer <fernandomayer em gmail.com>
> > escreveu:
> >>
> >> O pacote SOAR pode resolver. De uma olhada no manual e na vignette em
> >>
> >> http://cran-r.c3sl.ufpr.br/web/packages/SOAR/index.html
> >>
> >> []s,
> >>
> >> ---
> >> Fernando Mayer
> >> URL: http://sites.google.com/site/fernandomayer
> >> e-mail: fernandomayer [@] gmail.com
> >>
> >>
> >>
> >> 2011/3/20 pedrorafaelmarinho <pedrorafaelmarinho em yahoo.com.br>:
> >> > Pessoal estou com um problema ou talvez seja do R. Tenho que ler uma
> >> > base de dados de 600 mb em formato DBF (DBase). O R pelo que ando
> lendo ele
> >> > ler a base de dados e joga na memória RAM. Toda vez que carrego essa
> base de
> >> > dados o pc trava a ponto de o mouse não funcionar. Existe alguma forma
> de
> >> > fazer com que o R não carregue toda a base de dados diretamente na
> memória?
> >> > Por exemplo a base de dados ficar no HD e somente carregar algumas
> variáveis
> >> > a medida que vou precisando? Softwares simples como o Tabwin eu
> consigo
> >> > acessar a base de dados e o pc não trava...O que está acontecendo?
> >> > O comando que usei para carregar a base foi read.dbf() usando o pacote
> >> > foreign.
> >> >
> >> >
> >> >
> >> > ------------------------------------
> >> >
> >> > Links do Yahoo! Grupos
> >> >
> >> > <*> Para visitar o site do seu grupo na web, acesse:
> >> > http://br.groups.yahoo.com/group/R_STAT/
> >> >
> >> > <*> Para sair deste grupo, envie um e-mail para:
> >> > R_STAT-unsubscribe em yahoogrupos.com.br
> >> >
> >> > <*> O uso que você faz do Yahoo! Grupos está sujeito aos:
> >> > http://br.yahoo.com/info/utos.html
> >> >
> >> >
> >> >
> >> _______________________________________________
> >> R-br mailing list
> >> R-br em listas.c3sl.ufpr.br
> >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> >
> >
> > _______________________________________________
> > R-br mailing list
> > R-br em listas.c3sl.ufpr.br
> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> >
> >
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110320/5a011041/attachment-0001.html>
Mais detalhes sobre a lista de discussão R-br