sexta-feira, 24 de fevereiro de 2012

PNAD no STATA

De tempos em tempos preciso usar os dados da PNAD no STATA. Para quem um dia precisar, segue uma rotina que acabei de aprender. Compartilho, caso seja útil para alguém.

Créditos para o autor, seja lá quem for, do documento "O desafio de extrair dados", disponível na internet em http://www.4shared.com/file/E5qBfPOl/O_desafio_de_extrai_microdados.html

** TRANSFORMANDO DICIONÁRIO DA PNAD DE SAS PARA STATA
** Fazer download do arquivos de dados e dos dicionários e inputs no site do IBGE
** Usar dicionário 'dictionary using "C:\...\PESS2009.txt" {variáveis}'
** Substituir '@' por '_column('
** Substituir '$' por '%'
** Substituir '.' por 'g'
** Substituir '/*' e '/*' por '"'
** Substituir ') float V' por ') float V'
** Na variável UF inserir ') float V' manualmente
** quando a variável tiver formato maior do que '%8g', utilizar double no lugar de float
** Variáveis que estiverm sem '%' e com 'g' no final, inserir '%' e substituir 'g' por 'f'
** Salvar dicionário em um do-file no formato dicionário '.dct' (Ex: dicpess2009.dct)
** Abrir o arquivo usando 'infile using "C:\...\dicpess2009.dct", using("C:\...\PES2009.TXT")
** Ao final, utilizar o comando 'compress'
** O dicionário do arquivo de pessoas em 2009 deve ter a seguinte cara (mantive apenas as 10 primeiras e 10 últimas variáveis - quem quiser o arquivo todo me escreva; o dicionário funciona com uma lista parcial de variáveis também):

dictionary using "C:\...\PESS2009.txt"
{
_column(00001) float V0101 %4g " ANO DE REFERÊNCIA "
_column(00005) float UF %2g " UNIDADES DA FEDERAÇÃO "
_column(00005) double V0102 %8g " NÚMERO DE CONTROLE "
_column(00013) float V0103 %3g " NÚMERO DE SÉRIE "
_column(00016) float V0301 %2g " NÚMERO DE ORDEM "
_column(00018) float V0302 %1g " SEXO "
_column(00019) float V3031 %2g " DIA DE NASCIMENTO "
_column(00021) float V3032 %2g " MÊS DE NASCIMENTO "
_column(00023) float V3033 %4g " ANO DE NASCIMENTO "
_column(00027) float V8005 %3f " IDADE DO MORADOR "

(...)

_column(00851) float V2921 %1g " PROCUROU POLÍCIA APÓS AGRESSÃO "
_column(00852) float V2922 %1g " MOTIVO NÃO PROCUROU POLÍCIA "
_column(00853) float V2923 %1g " FOI FEITO REGg EM DELEGACIA "
_column(00854) float V2924 %2g " MOTIVO NÃO REGISTROU AGRESSÃO "
_column(00856) float V2925 %2g " ÁREA DO CONFLITO MAIS GRAVE "
_column(00858) float V2926 %2g " ONDE BUSCOU SOLUÇÃO CONFLITO "
_column(00860) float V2927 %2g " MOTIVO NÃO PROCUROU A JUSTIÇA "
_column(00862) float V2928 %1g " TEMPO PARA SOLUÇÃO DO CONFLITO "
_column(00863) float V2929 %2g " RESPONSÁVEL PELA SOLUÇÃO DO CONFLITO "
_column(00865) double V9993 %8g " DATA DE GERAÇÃO DO ARQUIVO "
}

0 comentários:

Postar um comentário