Code Monkey home page Code Monkey logo

pof's Introduction

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)
  )

pof's People

Contributors

rodrigoesborges avatar tomasbarcellos avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pof's Issues

Incluir leitura de POF de 88 e 96

As pesquisas desses anos: 1988 e 1996 não podem ser baixadas atualmente pelo pacote.

Eles também estão no formato fwf, mas não há nenhum script pronto para lê-los de imediato.

O mero download automatizado já seriam um avanço.

Exemplo de vínculo entre as tabelas

Olá, Tomas! Tudo bem? Vou usar esse espaço para tirar duas dúvidas:

  1. A primeira, é se você poderia dar um exemplo em como você realiza o vínculo entre as tabelas, ex: depois de criar as chaves para arquivo MORADOR e arquivo DESPESAS INDIVIDUAIS, depois que você faz o join pela chave "cod_pessoa", por exemplo, as linhas não ficam duplicadas? Fiz um teste com a renda total do arquivo morador depois do join e não bateu com o relatório do IBGE, mas quando fiz só com o arquivo MORADOR sim.

  2. Em outros tutoriais sobre a POF, vejo as pessoas usando o arquivo de pós estratificação para aplicar os pesos antes de criar o objeto survey, você também realiza essa etapa?

Muito obrigada! Abraços,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.