Esse documento tem como objetivo mostrar o passo a passo para adicionar um novo mês na base do CAGED.
Todo início de mês, checar na base do governo se houve atualização da base. Sempre tem defasagem de dois meses ( se estamos em outubro, os dados serão de agosto, por exemplo).
Caso já tenha atualização, excluir a base do mês anterior da pasta para limpar espaço.
Caso esteja vendo o arquivo em PDF, acesse o arquivo em R com nome de “Rotina Caged” para fazer as manipulações.
Primeiro passo é baixar os pacotes necessários para manipular os dados
library(readr)
library(tidyverse)
library(sidrar)
library(stargazer)
library(knitr)
library(dplyr)
Partimos agora para puxar a base no diretório do IBGE. Com o comando abaixo, baixamos a base do mês de interesse. Importante se atentar para sempre atualizar os meses quando executar o comando. Já aqui, filtramos a base baixada para selecionar apenas os dados de Belo Horizonte. Para acabar essa etapa, puxamos a base antiga compilada do caged.
A pasta que estamos trabalhando esta localizada em :
Z:\GEREP\Painel de Indicadores\CAGED
A defasagem do CAGED é sempre de dois meses. Por exemplo, se estamos no mês de novembro, os dados novos serão do mês de setembro. Logo, é necessário mudar quando for fazer o download dos dados
A base do mês para atualização tem nome de “dados” e a base com os meses anteriores tem o nome de “caged_hist”
#Baixando os dados do CAGED. Atualizar o mês, sm
download.file("ftp://ftp.mtps.gov.br/pdet/microdados/NOVO%20CAGED/2024/202409/CAGEDMOV202409.7z",
destfile = "CAGEDMOV202409.7z",
mode = "wb")
#Carregando os dados de BH
dados = read.csv2("CAGEDMOV202409.txt") %>%
filter(município == 310620)
# base anterior caged
caged_hist <- read_delim("Z:/GEREP/Histórico/CAGED/BH_GERAL.csv",
delim = ";", escape_double = FALSE, trim_ws = TRUE)
Vamos agora fazer as manipulações necessárias na base nova para juntar ambas.
Repare que na primeira manipulação, é necessário atualizar o mês. Para o restante, basta rodar.
# Atualizar o mês aqui
dados <- dados %>%
mutate (competênciamov = dplyr::case_when(
competênciamov == 202409 ~ "09/2024"))
# Categoria
dados <- dados %>%
mutate(categoria = dplyr::case_when(
categoria == 101 ~ "Empregado - Geral, inclusive o empregado público da administração direta ou indireta contratado pela CLT",
categoria == 102 ~ "Empregado - Trabalhador rural por pequeno prazo da Lei 11.718/2008",
categoria == 103 ~ "Empregado - Aprendiz",
categoria == 104 ~ "Empregado - Doméstico",
categoria == 105 ~ "Empregado - Contrato a termo firmado nos termos da Lei 9.601/1998",
categoria == 106 ~ "Trabalhador temporário - Contrato nos termos da Lei 6.019/1974",
categoria == 107 ~ "Empregado - Contrato de trabalho Verde e Amarelo - sem acordo para antecipação mensal da multa rescisória do FGTS",
categoria == 108 ~ "Empregado - Contrato de trabalho Verde e Amarelo - com acordo para antecipação mensal da multa rescisória do FGTS" ,
categoria == 111 ~ "Empregado - Contrato de trabalho intermitente",
categoria == 999 ~ "Não Identificado"
))
#Escolaridade
dados <- dados %>%
mutate(graudeinstrução = dplyr::case_when(
graudeinstrução == 1 ~ "Analfabeto",
graudeinstrução == 2 ~ "Até 5ª Incompleto",
graudeinstrução == 3 ~ "5ª Completo Fundamental",
graudeinstrução == 4 ~ "6ª a 9ª Fundamental",
graudeinstrução == 5 ~ "Fundamental Completo",
graudeinstrução == 6 ~ "Médio Incompleto",
graudeinstrução == 7 ~ "Médio Completo",
graudeinstrução == 8 ~ "Superior Incompleto",
graudeinstrução == 9 ~ "Superior Completo",
graudeinstrução == 10 ~ "Mestrado",
graudeinstrução == 11 ~ "Doutorado",
graudeinstrução == 80 ~ "Pós-Graduação completa",
graudeinstrução == 99 ~ "Não Identificado"
))
#Sexo
dados <- dados %>%
mutate(sexo = dplyr::case_when(
sexo == 1 ~ "Homem",
sexo == 3 ~ "Mulher",
sexo == 9 ~ "Não Identificado"
))
#Tipo de empregador
dados <- dados %>%
mutate(tipoempregador = dplyr::case_when(
tipoempregador == 0 ~ "CNPJ RAIZ",
tipoempregador == 2 ~ "CPF",
tipoempregador == 9 ~ "Não Identificado"
))
#Tipo do estabelecimento
dados <- dados %>%
mutate(tipoestabelecimento = dplyr::case_when(
tipoestabelecimento == 1 ~ "CNPJ",
tipoestabelecimento == 3 ~ "CAEPF(Cadastro de Atividade Econômica de Pessoa Física)",
tipoestabelecimento == 4 ~ "CNO(Cadastro Nacional de Obra)",
tipoestabelecimento == 5 ~ "CEI(CAGED)",
tipoestabelecimento == 9 ~ "Não Identificado"
))
#Tipo da movimentação
dados <- dados %>%
mutate(tipomovimentação = dplyr::case_when(
tipomovimentação == 10 ~ "Admissão por primeiro emprego",
tipomovimentação == 20 ~ "Admissão por reemprego",
tipomovimentação == 25 ~ "Admissão por contrato trabalho prazo determinado",
tipomovimentação == 31 ~ "Desligamento por demissão sem justa causa",
tipomovimentação == 32 ~ "Desligamento por demissão com justa causa",
tipomovimentação == 33 ~ "Culpa Recíproca",
tipomovimentação == 35 ~ "Admissão por reintegração",
tipomovimentação == 40 ~ "Desligamento a pedido",
tipomovimentação == 43 ~ "Término contrato trabalho prazo determinado",
tipomovimentação == 45 ~ "Desligamento por Término de contrato",
tipomovimentação == 50 ~ "Desligamento por aposentadoria",
tipomovimentação == 60 ~ "Desligamento por morte",
tipomovimentação == 70 ~ "Admissão por transferência",
tipomovimentação == 80 ~ "Desligamento por transferência",
tipomovimentação == 90 ~ "Desligamento por Acordo entre empregado e empregador",
tipomovimentação == 98 ~ "Desligamento de Tipo Ignorado",
tipomovimentação == 99 ~ "Não Identificado"
))
# SE tem trabalho parcial
dados <- dados %>%
mutate(indtrabparcial = dplyr::case_when(
indtrabparcial == 0 ~ "Não",
indtrabparcial == 1 ~ "Sim",
indtrabparcial == 9 ~ "Não Identificado"
))
# TRabalho intermitente
dados <- dados %>%
mutate(indtrabintermitente = dplyr::case_when(
indtrabintermitente == 0 ~ "Não",
indtrabintermitente == 1 ~ "Sim",
indtrabintermitente == 9 ~ "Não Identificado"
))
# Se tem deficiência
dados <- dados %>%
mutate(tipodedeficiência = dplyr::case_when(
tipodedeficiência == 0 ~ "Não Deficiente" ,
tipodedeficiência == 1 ~ "Física",
tipodedeficiência == 2 ~ "Auditiva",
tipodedeficiência == 3 ~ "Visual",
tipodedeficiência == 4 ~ "Intelectual(Mental)",
tipodedeficiência == 5 ~ "Múltipla",
tipodedeficiência == 6 ~ "Reabilitado",
tipodedeficiência == 9 ~ "Não Identificado"
))
# Raça
dados <- dados %>%
mutate(raçacor = dplyr::case_when(
raçacor == 1 ~"Branca",
raçacor == 2 ~"Preta",
raçacor == 3 ~"Parda",
raçacor == 4 ~"Amarela",
raçacor == 5 ~"Indígena",
raçacor == 6 ~"Não Informada",
raçacor == 9 ~"Não Identificado"
))
#Menor aprendiz
dados <- dados %>%
mutate(indicadoraprendiz = dplyr::case_when(
indicadoraprendiz == 0 ~ "Não",
indicadoraprendiz == 1 ~ "Sim",
indicadoraprendiz == 9 ~ "Não Identificado"
))
dados <- dados %>%
mutate(tamestabjan = dplyr::case_when(
tamestabjan == 1 ~ "Nenhum vínculo" ,
tamestabjan == 2 ~ "De 1 a 4 vínculos",
tamestabjan == 3 ~ "De 5 a 9 vínculos",
tamestabjan == 4 ~ "De 10 a 19 vínculos",
tamestabjan == 5 ~ "De 20 a 49 vínculos",
tamestabjan == 6 ~ "De 50 a 99 vínculos",
tamestabjan == 7 ~ "De 100 a 249 vínculos",
tamestabjan == 8 ~ "De 250 a 499 vínculos",
tamestabjan == 9 ~ "De 500 a 999 vínculos",
tamestabjan == 10 ~ "1000 ou mais vínculos",
tamestabjan == 99 ~ "Não Identificado"
))
# Aqui fazendo as faixas de idade- criação de nova coluna
dados <- dados %>%
mutate(faixa_etaria = case_when(
idade >= 14 & idade <= 24 ~ "14-24",
idade >= 25 & idade <= 34 ~ "25-34",
idade >= 35 & idade <= 44 ~ "35-44",
idade >= 45 & idade <= 54 ~ "45-54",
idade >= 55 & idade <= 64 ~ "55-64",
idade >= 65 ~ "65+",
TRUE ~ NA_character_ # Caso para idades fora dos intervalos especificados
))
Agora, basta juntar as duas bases e salvar a base completa no diretório.
O nome do arquivo final também é BH_GERAL.
É necessário colocar o arquivo anterior na pasta “Antigo”, para que se consiga fazer a extração dos dados
BH_GERAL <- rbind(caged_hist, dados)
write.csv2(BH_GERAL, file = "BH_GERAL.csv")
Depois de salvar, é necessário atualizar o painel de indicadores.
Para fazer isso, abra o power bi, peça para atualizar os dados do Caged e confira se não houve nenhum erro.
Lembre de atualizar a data na capa, salvar e publicar o arquivo!
😀