Frequentemente, pesquisadores desejam utilizar dados secundários em suas análises. Nesse sentido, o maior produtor de fontes primárias de dados é o IBGE. Para acessar as pesquisas basta ir em : http://downloads.ibge.gov.br/. Considere, por exemplo, os dados da Pesquisa de Orçamentos Familiares 2008 disponível no sítio do IBGE.
Nesse post, faremos um exercício para a leitura do dados da POF (Pesquisa de Orçamentos Familiares). Vamos trabalhar com os dois arquivos inicialmente: T_MORADOR_S.txt e T_DESPESA_INDIVIDUAL_S.txt.
O dicionário com as informações também está disponível: Layout com Descrições.xls .
Estamos interessados nas seguintes variáveis da base T_MORADOR_S.txt:
Para fazer a leitura dessa base, vamos usar a função LeBasesPosicaoFixa.R disponível no originalmente na página do Prof. Elias da UFPR:
#Local na máquina onde estão os dados e o arquivo LeBasesPosicaoFixa.R: setwd("C:\\Users\\Dados\\POF 2008") ##Exemplo 1: Invoca a função LeBasesPosicaoFixa.R source("LeBasesPosicaoFixa.R") ### Cria um novo arquivo somene com as informações necessárias # Seleciona tudo: fselpr<-function(x) x #Seleciona somente UF 53: fselpr <- function(x) x[substring(x,3,4)==53] rcsel.pfix(file.inp="T_MORADOR_S.txt", file.out="MORADOR.txt", first=c(3,5,8,9,11,12,60,112), last=c(4,7,8,10,11,13,62,127), fselpr) ###Lê os dados do arquivo de interesse dados<-read.table("MORADOR.txt") ###Deleta o arquivo MORADOR.txt file.remove("MORADOR.txt") #Coloca os nomes das variáveis colnames(dados)<-c("COD_UF","NUM_SEQ","NUM_DV","COD_DOMC","NUM_UC","NUM_INF", "IDADE_ANOS","RENDA_BRUTA_MONETARIA") #Coloca os labels nas variáveis library(Hmisc) label(dados$COD_UF)<-'CÓDIGO DA UF' label(dados$NUM_SEQ)<-'NÚMERO SEQUENCIAL' label(dados$NUM_DV)<-'DV DO SEQUENCIAL' label(dados$COD_DOMC)<-'NÚMERO DO DOMICÍLIO' label(dados$NUM_UC)<-'NÚMERO DA UC' label(dados$NUM_INF<-'NÚMERO DO INFORMANTE' label(dados$IDADE_ANOS)<-'IDADE CALCULADA EM ANOS' label(dados$RENDA_BRUTA_MONETARIA)<-'RENDA MONETÁRIA MENSAL DA UC' describe(dados)Repare que as linhas 9 e 10 do código anteriores determinam as posições iniciais e finais das variáveis de interesse. Na segunda parte usamos os dados do arquivo T_DESPESA_INDIVIDUAL_S.txt para as seguintes variáveis: O código de leitura e criação dos labels é dado por:
##Exemplo 2: Lê os dados do arquivo T_DESPESA_INDIVIDUAL_S.txt rcsel.pfix(file.inp="T_DESPESA_INDIVIDUAL_S.txt", file.out="DESPESA.txt", first=c(3,5,8,9,11,12,44,46,53), last=c(4,7,8,10,11,13,45,50,63), fselpr) ###Lê os dados do arquivo de interesse desp<-read.table("DESPESA.txt") ###Deleta o arquivo MORADOR.txt file.remove("DESPESA.txt") #Coloca os nomes das variáveis colnames(desp)<-c("COD_UF","NUM_SEQ","NUM_DV","COD_DOMC","NUM_UC", "NUM_INF","NUM_QUADRO","COD_ITEM","VAL_DESPESA") #Coloca os labels nas variáveis label(desp$COD_UF)<-'CÓDIGO DA UF' label(desp$NUM_SEQ)<-'NÚMERO SEQUENCIAL' label(desp$NUM_DV)<-'DV DO SEQUENCIAL' label(desp$COD_DOMC)<-'NÚMERO DO DOMICÍLIO' label(desp$NUM_UC)<-'NÚMERO DA UC' label(desp$NUM_INF)<-'NÚMERO DO INFORMANTE' label(desp$NUM_QUADRO)<-'NÚMERO DO QUADRO' label(desp$COD_ITEM)<-'CÓDIGO DO ITEM' label(desp$VAL_DESPESA)<-'VALOR DA DESPESA / AQUISIÇÃO'Finalmente, as bases podem ser unidas por meio do comando merge do R, e usando como variáveis chave: "COD_UF","NUM_SEQ","NUM_DV","COD_DOMC","NUM_UC" e "NUM_INF":
##Exemplo 3: Une as bases dados.pof<-merge(dados,desp,by=c("COD_UF","NUM_SEQ","NUM_DV","COD_DOMC","NUM_UC","NUM_INF"),all=FALSE) head(dados.pof)
Nenhum comentário:
Postar um comentário