[R-br] Extensão .DBC

Elias Teixeira Krainski eliaskrainski em yahoo.com.br
Sexta Novembro 13 06:29:30 BRST 2015


Correção: internações de Setembro, as de Outubro ainda não estão 
disponíveis.

On 13/11/15 09:24, Elias Teixeira Krainski wrote:
> Caros,
>
> DBC é um DBF comprimido. Assim, (sempre) sairá um .dbf de um .dbc.
>
> A sugestão de usar .RData (formato de dados do R) é útil apenas no 
> caso de precisar carregar os mesmos dados mais de uma vez no ambiente 
> R. Isto porque o caminho para sair de um .dbc até um .RData envolve 
> descomprimir o .dbc, ler o .dbf em R e salvar para .RData. Não vejo 
> saída ao processo de descomprimir .dbc e ler .dbf. Usar .RData é 
> vantajoso para economizar tempo e espaço em disco.
>
> Exemplo: 202143 internações hospitalares em SP (estado) em Outubro
> (disponível em 
> ftp://ftp.datasus.gov.br/dissemin/publicos/SIHSUS/200801_/Dados/)
> Ao final disponibilizo o script utilizado.
>
> Atividade                     segundos
> --------------------------------------
> download do arquivo              47.11
> extrair .dbf do .dbc              2.29
> ler o arquivo .dbf em R           6.57
> salvar .RData (default)           2.35
> salvar .Rdata (compress='xz')    19.00
> ler .RData (compress default)     0.51
> ler .RData (compress xz)          0.74
> --------------------------------------
>
> Os tamanhos em disco dos quatro arquivos em questão são
>  .dbc               15.0 Mb
>  .dbf              136.0 Mb
>  .RData (default)    7.5 Mb
>  .RData (xz)         4.6 Mb
>
> Creio que esses números podem ajudar a decidir a melhor opção.
>
> Elias
>
> PS.: script utilizado para o exemplo:
>
>
> a <- paste('ftp://ftp.datasus.gov.br/',
>            'dissemin/publicos/SIHSUS/',
>            '200801_/Dados/', sep='')
> b <- 'RDSP1509.dbc'
>
> system.time(download.file(paste(a,b,sep=''), b))
>
> system.time(system(paste(
>     'wine ../TabWin/dbf2dbc.exe', b)))
>
> system.time(d <- foreign:::read.dbf(gsub('dbc','dbf',b)))
>
> dim(d)
>
> system.time(save(d, file=gsub('.dbc','d.RData',b)))
> system.time(save(d, file=gsub('.dbc','c.RData',b), compress='xz'))
>
> system(paste('ls -lh ', substr(b,1,8), "*", sep=''))
>
> system.time(load(gsub('.dbc','d.RData',b)))
> system.time(load(gsub('.dbc','c.RData',b)))
>
>
> _______________________________________________
> 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 fornea 
> cdigo mnimo reproduzvel.



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