É 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@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@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@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@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@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@listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
>
> _______________________________________________
> R-br mailing list
> R-br@listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
>