Etapa I: Importando a base de dados ———————————————

Nesta etapa, importa-se a Tabela 1552, gerada pelo Sistema SIDRA/IBGE e que contém a contagem da popuçação desagregada por idade (CENSO - 2010).

Link para a tabela 1552

A seguir, importa-se a tabela 1552 para o R e corrige-se o tipo de variável “codigo_municipio” para o formato numérico.

library(readxl)

df <- readxl::read_excel("../data-raw/tabela1552_tidy.xlsx", sheet = 2) |>
  dplyr::mutate(codigo_municipio = as.numeric(codigo_municipio))

O script a seguir faz um cópia da coluna 1 do data frame que contém o código do muncípio, retira os NA´s, transforma o reesultado em um vetor e e depois replica o código de cada cidade 101 vezes. Ao final transforma os dados no formato de tibble.

col1 <- df[1] |> 
  tidyr::drop_na() |> 
  dplyr::pull() |>
  rep(101) |>
  dplyr::as_tibble()

O mesmo processo é feito com as colunas 2 e 3

col2 <- df[2] |> 
  tidyr::drop_na() |> 
  dplyr::pull() |>
  rep(101) |>
  dplyr::as_tibble()

col3 <- df[3] |> 
  tidyr::drop_na() |> 
  dplyr::pull() |>
  rep(101) |>
  dplyr::as_tibble()

Etapa II: Nesta etapa, as colunas 1, 2 e 3 são juntadas em um novo data frame (df2)

df2 <- dplyr::bind_cols(col1, col2, col3) |>
  dplyr::rename(codigo_municipio = value...1,
                nome_municipio = value...2,
                nome_uf = value...3)
## New names:
## * value -> value...1
## * value -> value...2
## * value -> value...3
## Ordena-se os dados pela variável "codigo_municipio" e atualizo o df2
df2 <- df2 |> dplyr::arrange(df2, "codigo_municipio")

## Nesta etapa, junta-se os dados do df2 com df
indices_tidy <- dplyr::bind_cols(df2, df[4:5])

Etapa 3: Importação dos índices da população brasileira por idade—–

Importando as estimativas da população (2001 a 2020)

populacao_municipios <- readxl::read_excel("../data-raw/popBrasilESTIMADA.xlsx")

Transformando a base importada no formato tidy

populacao_municipios_tidy <- populacao_municipios |>
  tidyr::pivot_longer(
    cols = starts_with("20"),
    names_to = "ano",
    values_to = "populacao") |>
  dplyr::mutate(
    codigo_municipio = as.numeric(codigo_municipio)
  )

EStimando a população desagregadas por idade

pop_est_idade <- dplyr::left_join(populacao_municipios_tidy,
                                  indices_tidy,
                                  by="codigo_municipio")|>
  dplyr::arrange(ano, idade) |>
  dplyr::rename(nome_municipio = nome_municipio.x) |>
  dplyr::mutate(populacao_estimada = ceiling(populacao*prop)) |>
  dplyr::select(codigo_municipio, nome_municipio, ano, nome_uf,
                idade, populacao_estimada)

Etapa 4: Calculando os Indacadores 1B, 1B e a Meta 1

brasil         <- readr::read_rds("../data-raw/Brasil_shp.rds")
estados        <- readr::read_rds("../data-raw/Estados_shp.rds")
municipios     <- readr::read_rds("../data-raw/Municipios_shp.rds")
dados_idh_muni <- readr::read_rds("../data-raw/dados_idh_muni.rds")
matriculaNorte <- readr::read_rds("../data-raw/matricula1320.rds")
populacaoEst   <- readr::read_rds("../data/populacaoEstimadaPorIdade.rds")
codMunicipios <- readxl::read_excel("../data-raw/CODIGO_MUNICIPIO.xls")

Dicionário das bases

*populacaoEst: contém a população estimada entre os anos de 2014 e 2020 das cidade da região norte, bem como a estimativa de 0 a 90+ anos.

Tratando os nomes das variáveis da base: MatriculaNorte

matriculaNorte <- matriculaNorte |> 
  janitor::clean_names() |>
  dplyr::rename(ano = nu_ano_censo,
                idade = nu_idade_referencia,
                codigo_municipio = co_municipio)

Tratando os nomes das variáveis da base: Código dos Municípios

codMunicipios <- codMunicipios |> 
  janitor::clean_names() |>
  dplyr::rename(co_uf = uf,
                codigo_municipio = codigo_municipio_completo) |>
  dplyr::select(-municipio) |>
  dplyr::mutate(
    codigo_municipio = as.numeric(codigo_municipio)
  )

Matrículas da Educação Infantil por ano e municicipio entre os anos de 2020

matriculaEduInf <- matriculaNorte |>
  dplyr::filter(ano %in% "2014":"2020") |>
  dplyr::filter(tp_etapa_ensino %in% "1":"2") |>
  dplyr::group_by(ano, codigo_municipio, tp_etapa_ensino) |>
  dplyr::count(codigo_municipio) |>
  dplyr::mutate(
    joinTab = stringr::str_c(ano, codigo_municipio,
                             sep = "_")
  ) |> dplyr::rename(qtdeMat = n)

Agrupando as matrículas por etapa de ensino:

matriculaCrecheNorte <- matriculaEduInf |>
  # Filtrando etapa 1 referente às matriculas em creche
  dplyr::filter(tp_etapa_ensino == "1") |>
  dplyr::rename(qtdeMatCreche = qtdeMat)
matriculaPreNorte <- matriculaEduInf |>
  # Filtrando etapa 1 referente às matriculas em creche
  dplyr::filter(tp_etapa_ensino == "2")|>
  dplyr::rename(qtdeMatPre = qtdeMat)

Agrupando as populações

popCrecheEst <- populacaoEst |>
  dplyr::filter(idade %in% c(0:3)) |>
  dplyr::group_by(ano, codigo_municipio, nome_municipio) |>
  dplyr::summarise(
    popFaixa0a3 = sum(populacao_estimada)
  ) |>
  dplyr::group_by(codigo_municipio) |>
  dplyr::mutate(
    joinTab = stringr::str_c(ano, codigo_municipio,
                             sep = "_")) |>
  dplyr::relocate("joinTab",.after = "nome_municipio")
## `summarise()` has grouped output by 'ano', 'codigo_municipio'. You can override using the `.groups` argument.
popPreEst <- populacaoEst |>
  dplyr::filter(idade %in% c(4:5)) |>
  dplyr::group_by(ano, codigo_municipio, nome_municipio) |>
  dplyr::summarise(
    popFaixa4e5 = sum(populacao_estimada)
  ) |>
  dplyr::group_by(codigo_municipio) |>
  dplyr::mutate(
    joinTab = stringr::str_c(ano, codigo_municipio,
                             sep = "_")) |>
  dplyr::relocate("joinTab",.after = "nome_municipio")
## `summarise()` has grouped output by 'ano', 'codigo_municipio'. You can override using the `.groups` argument.
pop0a5 <- dplyr::left_join(popCrecheEst, popPreEst, by = "joinTab" ) |>
  dplyr::relocate(popFaixa0a3, .before = popFaixa4e5) |>
  dplyr::select(-ano.y, -codigo_municipio.y, - nome_municipio.y) |>
  dplyr::rename(ano = ano.x, codigo_municipio = codigo_municipio.x)

baseMatricula <- dplyr::left_join(matriculaCrecheNorte,
                                  matriculaPreNorte,
                                  by = "joinTab")

baseMeta1 <- dplyr::left_join(baseMatricula,
                              pop0a5,
                              by = "joinTab") |>
  dplyr::select(ano, codigo_municipio, nome_municipio.x,
                qtdeMatCreche, popFaixa0a3, qtdeMatPre, popFaixa4e5) |>
  dplyr::rename(nome_municipio = nome_municipio.x) |>
  dplyr::mutate(
    indice1b = qtdeMatCreche/popFaixa0a3,
    indice1a = qtdeMatPre/popFaixa4e5,
    meta1 = (qtdeMatCreche + qtdeMatPre)/(popFaixa0a3+popFaixa4e5)
  )

baseGeral <- dplyr::left_join(codMunicipios, baseMeta1, by = "codigo_municipio") |>
  dplyr::select(-nome_municipio.x) |>
  dplyr::rename(nome_municipio = nome_municipio.y)