[R-br] Fwd: [Dúvida] Ler dados direto no HD
Bernardo Rangel Tura
tura em centroin.com.br
Segunda Março 28 06:20:36 BRT 2011
On Sun, 2011-03-27 at 15:20 -0300, Pedro Rafael wrote:
> Tura,
>
> mas mesmo assim isso é um grande problema. Você leu uma base de 12 gb.
> Se tivesse lido uma de 1 tera. O R iria tentar colocar tudo na RAM?
> Era pra existir algum gerenciamente automático de memória. Se agrava
> ainda mais quando estou no Windows. Eu trabalho na secretaria de saúde
> com dados do SIM, SINAN e SINASC e na verdade não tenho grandes
> problemas mas tava pensando como seria trabalhar com uma base de dados
> 50 vezes maior como seria usando o R....? Acho que vou montar um bom
> computador com memória RAM lá em cima e comprar uma placa de vídeo da
> nvidia e programar em Cuda para fazer as contas diretamente na placa
> de video que é mais rápido kkkkkkkkkkkkkkkkkkkkkkkk
> Sim Tura ajudou as dicas, como você falou para as base de dados os
> comandos que você me passou em que não trasformam em fatores algumas
> variaveis melhorou um pouco o problema.
>
> --
> Saudações,
> Pedro Rafael Diniz Marinho - Estatístico SES-PB
Rafael,
Acho que você não entende o problema ...
Se você precisa realmente manipular X Gb de dados você tem que ter mais
de X Gg de RAM. Volto a repetir nenhum programa do mundo pode trabalhar
com dados fora da RAM. Se você usar o dado ele tem que estar na RAM.
Acho que você está confundindo o tamanho da base de dados com quanto de
RAm você precisa para trabalhar. Recentemente para uma demanda precisei
avaliar todas as internações no Brasil em 2008. Ao todo são 324 arquivos
totalizando 4,8 Gb logo a maior parte das pessoa dirão preciso de 6 Gb
ou mais para mexer nesta base. Porém o conjunto de dados que preciso
para a análise totalizava 141 Mb.
Desta form fiz um script que li cada base de dados em um diretório
selecionava o conjunto de dados (subset) num arquivo temporário e
escrevia em csv no disco. Após isto lia todos os arquivos csv de uma vez
só e os unificava com rbind em um único arquivo que utilizando save se
transformou em 1 arquivo .RData de 141 mb.
Este script pode se rodado num computador com 2 Gb de RAM! Afinal o
maior arquivo tem menos de 100 Mb.
Vou te dar um conselho de alguém que mexe com bases DATASUS faz tempo.
larga o windows, os paciente com demência gerenciam suas memorias melhor
que ele em 2006 larguei o windows justamente por isso.
Se quiser comprar um computador escolha um com vários núcleos (Phenom X6
por exemplo) e compre RAM. Na minha experiência usar CUDA não vale a
pena para isto. CUDA é bom para situações onde vc tem uma quantidade
enorme de cálculos e não manipulação de dados
--
[]s
Tura
Mais detalhes sobre a lista de discussão R-br