Skip to content

Pacote para facilitar download e leitura de dados da POF/IBGE

License

Notifications You must be signed in to change notification settings

tomasbarcellos/pof

Repository files navigation

pof

Lifecycle: experimental

O pacote permite baixar e ler dados da POF. Por enquanto o pacote contém apenas os dados divulgados em abril. Não inclui, portanto, dados sobre alimentação e dieta. Isso será incluído em breve.

Installation

O Pacote ainda não está no CRAN, apenas Github.

remotes::install_github("tomasbarcellos/pof")

Example

O download funciona apenas para os anos de 2003, 2009 e 2018, por enquanto.

library(pof)
downaload_pof(2018)
unzip_pof(2018)

Com os dados baixamos, o pacote oferece uma função para ler cada tabela da pesquisa.

Por enquanto os scripts de leitura apenas reproduzem as instruções do IBGE para o ano de 2018.

Por exemplo, é possível.

aluguel <- ler_aluguel(2018)
dplyr::glimpse(aluguel)
#> Observations: 48,935
#> Variables: 19
#> $ UF                <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11…
#> $ ESTRATO_POF       <dbl> 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103…
#> $ TIPO_SITUACAO_REG <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2…
#> $ COD_UPA           <dbl> 110005400, 110005400, 110005400, 110005400, 11…
#> $ NUM_DOM           <dbl> 1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 1, 2, 4, 5, 6…
#> $ NUM_UC            <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ QUADRO            <chr> "00", "00", "00", "00", "00", "00", "00", "00"…
#> $ V9001             <chr> "0000101", "0000101", "0000101", "0000101", "0…
#> $ V9002             <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11…
#> $ V8000             <dbl> 2.0e+03, 5.0e+02, 3.0e+02, 4.0e+02, 2.0e+02, 4…
#> $ V9010             <dbl> 9, 10, 10, 10, 10, 10, 10, 11, 12, 12, 6, 6, 6…
#> $ V9011             <dbl> 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12…
#> $ DEFLATOR          <dbl> 1.0008526, 0.9994171, 0.9994171, 0.9994171, 0.…
#> $ V8000_DEFLA       <dbl> 2001.71, 499.71, 299.83, 399.77, 199.84, 399.6…
#> $ COD_IMPUT_VALOR   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0…
#> $ FATOR_ANUALIZACAO <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ PESO              <dbl> 272.8067, 272.8067, 272.8067, 272.8067, 272.80…
#> $ PESO_FINAL        <dbl> 372.9845, 372.9845, 372.9845, 372.9845, 372.98…
#> $ RENDA_TOTAL       <dbl> 11254.75, 4769.13, 2313.61, 6596.90, 366.43, 2…

domicilios <- ler_domicilio(2018)
dplyr::glimpse(domicilios)
#> Observations: 57,920
#> Variables: 37
#> $ UF                <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11…
#> $ ESTRATO_POF       <dbl> 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103…
#> $ TIPO_SITUACAO_REG <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2…
#> $ COD_UPA           <dbl> 110005400, 110005400, 110005400, 110005400, 11…
#> $ NUM_DOM           <dbl> 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, …
#> $ V0201             <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ V0202             <dbl> 1, 1, 4, 4, 1, 4, 1, 4, 1, 1, 1, 2, 4, 4, 4, 4…
#> $ V0203             <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1…
#> $ V0204             <dbl> 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 3, 3, 4, 1…
#> $ V0205             <dbl> 10, 5, 5, 7, 6, 2, 8, 6, 6, 7, 5, 6, 5, 5, 3, …
#> $ V0206             <dbl> 3, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1…
#> $ V0207             <dbl> 1, 1, 1, 1, 1, 3, 1, 3, 2, 1, 3, 3, 4, 4, 3, 4…
#> $ V0208             <dbl> 1, 2, 1, 2, 1, NA, 1, NA, NA, 1, NA, NA, NA, N…
#> $ V0209             <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ V02101            <dbl> 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2…
#> $ V02102            <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
#> $ V02103            <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
#> $ V02104            <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
#> $ V02105            <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
#> $ V02111            <dbl> 3, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1…
#> $ V02112            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ V02113            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ V0212             <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2…
#> $ V0213             <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 3…
#> $ V02141            <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ V02142            <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
#> $ V0215             <dbl> 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1…
#> $ V02161            <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2…
#> $ V02162            <dbl> 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2…
#> $ V02163            <dbl> 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2…
#> $ V02164            <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
#> $ V0217             <dbl> 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 4, 1…
#> $ V0219             <dbl> NA, 1, NA, NA, NA, NA, NA, NA, NA, 3, NA, NA, …
#> $ V0220             <dbl> 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2…
#> $ V0221             <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3…
#> $ PESO              <dbl> 272.8067, 272.8067, 272.8067, 272.8067, 272.80…
#> $ PESO_FINAL        <dbl> 372.9845, 372.9845, 372.9845, 372.9845, 372.98…

Adicionando chaves

O código abaixo adiciona chaves nas tabelas para permitir vinculá-las.

# Morador - Nível pessoa
morador <- pof::ler_morador(2018) %>% 
  janitor::clean_names() %>% 
  mutate(
    cod_uc = paste0(cod_upa, num_dom, num_uc),
    cod_pessoa = paste0(cod_uc, cod_informante)
  )

# Despesa coletiva - Nível despesa
desp_coletiva <- pof::ler_desp_col(2018) %>% 
  janitor::clean_names() %>% 
  mutate(
    cod_uc = paste0(cod_upa, num_dom, num_uc),
    cod_despesa = paste0(cod_uc, quadro, seq)
  )

# Caderneta coletiva - Nível despesa domicilio
cad_coletiva <- pof::ler_cad_col(2018) %>% 
  janitor::clean_names() %>% 
  mutate(
    cod_uc = paste0(cod_upa, num_dom, num_uc),
    cod_despesa = paste0(cod_uc, quadro, seq)
  )

# Despesa individual - Nível despesa individual
despesa_individual <- pof::ler_desp_ind(2018) %>% 
  janitor::clean_names() %>% 
  mutate(
    cod_uc = paste0(cod_upa, num_dom, num_uc),
    cod_pessoa = paste0(cod_uc, cod_informante),
    cod_despesa = paste0(cod_pessoa, quadro, seq)
  )

# Aluguel - Nível domicílio
aluguel <- pof::ler_aluguel(2018) %>% 
  janitor::clean_names() %>% 
  mutate(
    cod_uc = paste0(cod_upa, num_dom, num_uc),
  )

# Rendimento - Nível rendimento
rendimentos_trabalho <- pof::ler_rend_trab(2018) %>% 
  janitor::clean_names() %>% 
  mutate(
    cod_uc = paste0(cod_upa, num_dom, num_uc),
    cod_pessoa = paste0(cod_uc, cod_informante),
    cod_rendimento = paste0(cod_pessoa, quadro, sub_quadro, seq),
  )

# Rendimento - Nível rendimento
rendimentos_outros <- pof::ler_rend_outros(2018) %>% 
  janitor::clean_names() %>% 
  mutate(
    cod_uc = paste0(cod_upa, num_dom, num_uc),
    cod_pessoa = paste0(cod_uc, cod_informante),
    cod_rendimento = paste0(cod_pessoa, quadro, seq),
  ) 

# Domicílio - Nível domicílio
domicilios <- pof::ler_domicilio(2018) %>% 
  janitor::clean_names() %>% 
  mutate(
    cod_dom = paste0(cod_upa, num_dom)
  )

About

Pacote para facilitar download e leitura de dados da POF/IBGE

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages