[R-br] Extensão .DBC
Elias Teixeira Krainski
eliaskrainski em yahoo.com.br
Sexta Novembro 13 06:24:19 BRST 2015
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)))
Mais detalhes sobre a lista de discussão R-br