[R-br] Leitura de dados da PNAD 2008 com o pacote dicionariosIBGE

Leonardo Ferreira Fontenelle leonardof em leonardof.med.br
Sábado Agosto 30 12:49:12 BRT 2014


Este código importa os dados com sucesso:

# Pelo dicionario, o terceiro campo (variável de controle) engloba o
segundo (UF)
# Mas isso é dificil para a função entender.
novodic <- within(dicdom2008, {inicio[3] <- 7; tamanho[3] <- 6})
amostra <- read.fwf(file = "2008/dados/DOM2008.txt",
                    widths = novodic$tamanho,
                    header = FALSE,
                    col.names = novodic$cod,
                    strip.white = TRUE)
amostra[, 3] <- factor(paste0(amostra[, 2], amostra[, 3]))

Fornecer esse "novodic" em vez do dicdom2008 para a função le.pesquisa()
do pacote dicionariosIBGE não resolveu o problema já relatado.

-- 
Leonardo Ferreira Fontenelle
http://lattes.cnpq.br/9234772336296638

Em Sáb 30 ago. 2014, às 11:45, Leonardo Ferreira Fontenelle escreveu:
> Não sei o quanto ajuda, mas percebi que o dataframe gerado está com o
> número errado de linhas:
> 
> Num terminal:
> . wc DOM2008.txt --lines
> 150591 DOM2008.txt
> 
> No R:
> . nrow(amostra)
> [1] 1015101
> 
> Essa diferença não se resolve pedindo ao le.pesquisa() para ler todas as
> variáveis:
> . amostra <- le.pesquisa(dicdom2008,
> "~/Dropbox/Cobertura/2008/dados/DOM2008.txt", codigos = dicdom2008[, 2],
> nlines = 150591)
>   |======================================================================|
>   100%
> . nrow(amostra)
> [1] 1015101
> 
> -- 
> Leonardo Ferreira Fontenelle
> http://lattes.cnpq.br/9234772336296638
> 
> Em Sáb 30 ago. 2014, às 11:19, Leonardo Ferreira Fontenelle escreveu:
> > Bom dia, pessoal.
> > 
> > Estou começando a namorar os microdados da Pesquisa Nacional por Amostra
> > de Domicílios de 2008, mas não estou conseguindo utilizar o pacote
> > dicionariosIBGE para ler os microdados. Na saída abaixo, substituí o
> > prompt ">" por "." para evitar que clientes de e-mail interpretem como
> > citação de e-mails prévios.
> > 
> > . library("dicionariosIBGE")
> > . data(dicPNAD2008)
> > . dicdom2008
> >    inicio    cod tamanho                           desc
> > 1       1  V0101       4                ANO DA PESQUISA
> > 2       5     UF       2           UNIDADE DA FEDERACAO
> > 3       5  V0102       8             NUMERO DE CONTROLE
> > 4      13  V0103       3                NUMERO DE SERIE
> > 5      16  V0104       2             TIPO DE ENTREVISTA
> > [...]
> > . amostra <- le.pesquisa(dicdom2008,
> > "~/Dropbox/Cobertura/2008/dados/DOM2008.txt", codigos = c("V0101", "UF",
> > "V0102", "V0103", "V4105", "V4106", "V4606", "V4604", "V4605", "V4606",
> > "V4607", "V4608", "V4609", "V4610", "V4611", "SUBAMO", "V0223"), nlines
> > = 150591)
> >   |=====================================================================| 100%
> > . summary(amostra$V0101)
> >    Mode    NA's 
> > logical 1015101 
> > . summary(amostra$UF)
> >    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
> >    0.00    3.00   12.00   19.69   31.00   99.00  264343 
> > 
> > Como os microdados da PNAD 2008 estão reponderados utilizando
> > informações posteriores à publicação original do arquivo, considerei a
> > possibilidade de que a organização dos dados tivesse mudado. Mas,
> > conferindo o dicionário de dados atualmente disponibilizado, vi que os
> > números de início, código e tamanho continuam os mesmos, pelo menos para
> > as primeiras variáveis (são setenta variáveis, só neste banco de dados).
> > 
> > O que será que estou fazendo de errado?
> > 
> > Grato,
> > 
> > Leonardo Ferreira Fontenelle
> > http://lattes.cnpq.br/9234772336296638


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