Observações e o que vai ser feito

A RAIS começa em 1985 e, atualmente meados de 2025, temos informações até 2023. Isso dá um total de mais de 350 GB (ver observações do basedosdados.org). Nós não precisaremos da base inteira, só a parte que vai de 2009 a 2023. Ainda assim, não é trivial manusear a base. Por isso, o procedimento é primeiro trabalhar com a base de dados de Estabelecimentos, depois identificar as empresas beneficiadas dentro desta base (fazendo a junção das beneficiadas com RAIS-Estabelecimentos) e, por último, fazer a junção da RAIS-Estabelecimentos + Empresas Beneficiadas + RAIS-Vínculos para ter a base final.


Com a junção será possível saber quantos empregados, salários, perfil dos empregados das empresas que foram beneficiadas pela política pública, e das outras que não foram tratadas. A ideia principal da avaliação é entender em qual medida os diferenciais de perfomance podem ser atribuídos à política pública.

Para facilitar o entendimento, este arquivo vai ter uma parte explicando um pouco sobre a RAIS, outra parte falando sobre as manipulações feitas na RAIS-Estabelecimentos e a posterior junção dela com o arquivo das empresas beneficiadas. Por último, as manipulações feitas na RAIS-Vínculos.

RAIS - Contexto

A RAIS (Relação Anual de Informações Sociais) é um levantamento estatístico realizado anualmente pelo Ministério do Trabalho e Emprego do Brasil. Ela coleta dados sobre o mercado de trabalho formal no país, fornecendo informações detalhadas sobre estabelecimentos, vínculos empregatícios e características dos trabalhadores. Então, uma limitação básica é que o setor informal não está contemplado. Como a análise será feita para o Setor de Alimentos e Bebidas, isso não faz muita diferença agora. Mas, para análises futuras, a informalidade pode ser um problema.

Há duas dimensões principais: RAIS Estabelecimento e RAIS Vínculos.

RAIS Estabelecimento

Essa dimensão da pesquisa foca nos estabelecimentos (empresas ou unidades locais) que possuem vínculos empregatícios formais. Ela coleta informações como:

  • Dados cadastrais: CNPJ, nome, endereço, atividade econômica (CNAE), porte da empresa, etc

  • Características do estabelecimento: número de vínculos ativos, faixa de salários, tempo de existência, entre outros.

  • Localização: município, estado e região onde o estabelecimento está situado.

Cada linha na base vai ser uma empresa (CNPJ) por ano. Ou seja, é possível acompanhar o CNPJ ao longo do ano, assim como verificar o nascimento e a morte de empresas.

RAIS Vínculos

Essa dimensão se concentra nos vínculos empregatícios formais, ou seja, nos registros individuais de trabalhadores com carteira assinada. As informações coletadas incluem:

  • Dados do trabalhador: sexo, idade, escolaridade, nacionalidade, etc.

  • Características do emprego: salário, tempo de serviço, tipo de admissão (se foi contratação nova ou readmissão), horas trabalhadas, entre outros.

  • Dados do contrato: tipo de vínculo (CLT, estatutário, temporário, etc.), categoria de ocupação (CBO), e motivo de desligamento (quando aplicável).

Essa dimensão permite analisar o perfil dos trabalhadores, a qualidade dos empregos, a rotatividade no mercado de trabalho e as desigualdades salariais, entre outros aspectos.

A base é muito interessante principalmente por fazer um link entre empregador e empregado, sendo repetidas vezes usada em artigos nos top-journals de economia:

  • DIX-CARNEIRO, Rafael; KOVAK, Brian K. Trade liberalization and regional dynamics. American Economic Review, v. 107, n. 10, p. 2908-2946, 2017.

  • ENGBOM, Niklas; MOSER, Christian. Earnings inequality and the minimum wage: Evidence from Brazil. American Economic Review, v. 112, n. 12, p. 3803-3847, 2022.

  • COLONNELLI, Emanuele; PREM, Mounu; TESO, Edoardo. Patronage and selection in public sector organizations. American Economic Review, v. 110, n. 10, p. 3071-3099, 2020.

  • BRITTO, Diogo GC; PINOTTI, Paolo; SAMPAIO, Breno. The effect of job loss and unemployment insurance on crime in Brazil. Econometrica, v. 90, n. 4, p. 1393-1423, 2022.

  • DIX‐CARNEIRO, Rafael. Trade liberalization and labor market dynamics. Econometrica, v. 82, n. 3, p. 825-885, 2014.

  • HAANWINCKEL, Daniel; SOARES, Rodrigo R. Workforce composition, productivity, and labour regulations in a compensating differentials theory of informality. The Review of Economic Studies, v. 88, n. 6, p. 2970-3010, 2021.

Estabelecimentos (RAIS)

Pacotes

library(basedosdados)
library(DBI)
library(bigrquery)
library(ggplot2)
library(stringr)
library(dplyr)
library(arrow)
library(vroom)
library(dplyr)
library(readxl)
library(janitor)

Credenciais

Esse passo não é necessário. Mas, algumas vezes é mais rápido acessar o repositório da basedosdados.org ao invés de ir na base inteira para extrair alguma informação. Imagine, por exemplo, que precisa criar um gráfico com o número de empregados no Setor de Alimentos e Bebidas desde 1985 até 2023. Não é possível fazer isso com a nossa base (ela começa em 2009), mas é facilmente acessado pelo Big Query da Base dos Dados. Caso queira reproduzir ou criar suas próprias ilustrações, fazer o seu próprio cadastro no Google Cloud. Aqui está indicado como fazer (clicar em “BigQuery do BD”).

Abaixo são as minhas credenciais.

set_billing_id("356922918080")
bq_auth()

con <- dbConnect(
  bigrquery::bigquery(),
  billing = "356922918080",
  project = "agrteste2"
)

#leonardocardoso005@gmail.com

Observação: usar library(vroom) facilita muito as coisas.

Olhando algumas poucas observações para entender como a base está especificada. É preciso fazer isso principalmente para entender se ela está separada por ; ou por |.

e2000 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2000ID/Estb2000ID.TXT",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","),
               n_max = 10)

e2001 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2001ID/Estb2001ID.TXT",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","),
               n_max = 10)

e2002 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2002ID/Estb2002ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","),
               n_max = 10)

e2014 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2014ID/Estb2014.TXT",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","),
               n_max = 10)


e2015 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2015ID/ESTB2015ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)

e2016 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2016ID/ESTB2016ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)

e2017 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2017ID/ESTB2017ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)

e2018 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2018ID/ESTB2018ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)

e2019 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2019ID/ESTB2019ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)

e2020 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2020ID/ESTB2020ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)


e2021 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2021ID/ESTB2021ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)

e2022 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2022ID/RAIS_ESTAB_ID.txt.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)

e2023 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2023ID/RAIS_ESTAB_ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","), 
               n_max = 10)

Agora já é possível saber quais bases estão separadas por ; e quais estão separadas por | e carregar os dados. Fiz de 2002 a 2023 para a RAIS Estabelecimentos. Mas, na parte de Vínculos está somente de 2009 a 2023. Então, a rotina abaixo carrega a base de dados. 1

e2002 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2002ID/Estb2002ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2003 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2003ID/Estb2003ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2004 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2004ID/Estb2004ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2005 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2005ID/Estb2005ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","))


e2006 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2006ID/Estb2006ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2007 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2007ID/Estb2007ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","))


e2008 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2008ID/Estb2008ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2009 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2009ID/Estb2009ID.TXT",
               delim = "|",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2010 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2010ID/Estb2010ID.TXT",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2011 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2011ID/Estb2011ID.TXT",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2012 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2012ID/Estb2012ID.TXT",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2013 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2013ID/Estb2013ID.TXT",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2014 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2014ID/Estb2014.TXT",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2015 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2015ID/ESTB2015ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2016 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2016ID/ESTB2016ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2017 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2017ID/ESTB2017ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2018 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2018ID/ESTB2018ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2019 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2019ID/ESTB2019ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2020 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2020ID/ESTB2020ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2021 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2021ID/ESTB2021ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

e2022 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2022ID/RAIS_ESTAB_ID.txt.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))


e2023 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2023ID/RAIS_ESTAB_ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

Cleaning

Não é possível combinar as bases de dados em lotes, uma vez que há diferenças nos nomes e formatos das variáveis. Por isso, reduziremos as bases somente às variáveis usadas e modificaremos os nomes e formatos pra que seja possível juntá-las.

Vou deixar só as variáveis que imagino que usaremos.

colnames(e2002) <- tolower(colnames(e2002))  # Convert all column names to lowercase first
colnames(e2002)[colnames(e2002) == "cep"] <- "cep"
colnames(e2002)[colnames(e2002) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2002)[colnames(e2002) == "identificad"] <- "cnpj"
colnames(e2002)[colnames(e2002) == "radic cnpj"] <- "radic_cnpj"
colnames(e2002)[colnames(e2002) == "dt abert com"] <- "data_abertura"
colnames(e2002)[colnames(e2002) == "dt baixa com"] <- "data_baixa"
colnames(e2002)[colnames(e2002) == "dt encer or"] <- "data_encerramento"
colnames(e2002)[colnames(e2002) == "municipio"] <- "city"
colnames(e2002)[colnames(e2002) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2002)[colnames(e2002) == "estoque"] <- "empregos"
colnames(e2002)[colnames(e2002) == "est clt out"] <- "empregos_clt"
colnames(e2002)[colnames(e2002) == "subs ibge"] <- "subs_ibge"
colnames(e2002)[colnames(e2002) == "tipo estbl"] <- "tipo_estabelecimento"

e2002 <- e2002[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento")]
colnames(e2003) <- tolower(colnames(e2003))
colnames(e2003)[colnames(e2003) == "cep"] <- "cep"
colnames(e2003)[colnames(e2003) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2003)[colnames(e2003) == "identificad"] <- "cnpj"
colnames(e2003)[colnames(e2003) == "radic cnpj"] <- "radic_cnpj"
colnames(e2003)[colnames(e2003) == "dt abert com"] <- "data_abertura"
colnames(e2003)[colnames(e2003) == "dt baixa com"] <- "data_baixa"
colnames(e2003)[colnames(e2003) == "dt encer or"] <- "data_encerramento"
colnames(e2003)[colnames(e2003) == "municipio"] <- "city"
colnames(e2003)[colnames(e2003) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2003)[colnames(e2003) == "estoque"] <- "empregos"
colnames(e2003)[colnames(e2003) == "est clt out"] <- "empregos_clt"
colnames(e2003)[colnames(e2003) == "subs ibge"] <- "subs_ibge"
colnames(e2003)[colnames(e2003) == "tipo estbl"] <- "tipo_estabelecimento"


e2003 <- e2003[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento")]
colnames(e2004) <- tolower(colnames(e2004))
colnames(e2004)[colnames(e2004) == "cep"] <- "cep"
colnames(e2004)[colnames(e2004) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2004)[colnames(e2004) == "identificad"] <- "cnpj"
colnames(e2004)[colnames(e2004) == "radic cnpj"] <- "radic_cnpj"
colnames(e2004)[colnames(e2004) == "dt abert com"] <- "data_abertura"
colnames(e2004)[colnames(e2004) == "dt baixa com"] <- "data_baixa"
colnames(e2004)[colnames(e2004) == "dt encer or"] <- "data_encerramento"
colnames(e2004)[colnames(e2004) == "municipio"] <- "city"
colnames(e2004)[colnames(e2004) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2004)[colnames(e2004) == "estoque"] <- "empregos"
colnames(e2004)[colnames(e2004) == "est clt out"] <- "empregos_clt"
colnames(e2004)[colnames(e2004) == "subs ibge"] <- "subs_ibge"
colnames(e2004)[colnames(e2004) == "tipo estbl"] <- "tipo_estabelecimento"


e2004 <- e2004[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento")]
colnames(e2005) <- tolower(colnames(e2005))
colnames(e2005)[colnames(e2005) == "cep"] <- "cep"
colnames(e2005)[colnames(e2005) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2005)[colnames(e2005) == "identificad"] <- "cnpj"
colnames(e2005)[colnames(e2005) == "radic cnpj"] <- "radic_cnpj"
colnames(e2005)[colnames(e2005) == "dt abert com"] <- "data_abertura"
colnames(e2005)[colnames(e2005) == "dt baixa com"] <- "data_baixa"
colnames(e2005)[colnames(e2005) == "dt encer or"] <- "data_encerramento"
colnames(e2005)[colnames(e2005) == "municipio"] <- "city"
colnames(e2005)[colnames(e2005) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2005)[colnames(e2005) == "estoque"] <- "empregos"
colnames(e2005)[colnames(e2005) == "est clt out"] <- "empregos_clt"
colnames(e2005)[colnames(e2005) == "subs ibge"] <- "subs_ibge"
colnames(e2005)[colnames(e2005) == "tipo estbl"] <- "tipo_estabelecimento"

e2005 <- e2005[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento")]
 save(e2002, file = "e2002.Rda")
 save(e2003, file = "e2003.Rda")
 save(e2004, file = "e2004.Rda") 
 save(e2005, file = "e2005.Rda") 
rm(e2002, e2003, e2004, e2005)
colnames(e2006) <- tolower(colnames(e2006))
colnames(e2006)[colnames(e2006) == "cep"] <- "cep"
colnames(e2006)[colnames(e2006) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2006)[colnames(e2006) == "identificad"] <- "cnpj"
colnames(e2006)[colnames(e2006) == "radic cnpj"] <- "radic_cnpj"
colnames(e2006)[colnames(e2006) == "dt abert com"] <- "data_abertura"
colnames(e2006)[colnames(e2006) == "dt baixa com"] <- "data_baixa"
colnames(e2006)[colnames(e2006) == "dt encer or"] <- "data_encerramento"
colnames(e2006)[colnames(e2006) == "municipio"] <- "city"
colnames(e2006)[colnames(e2006) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2006)[colnames(e2006) == "estoque"] <- "empregos"
colnames(e2006)[colnames(e2006) == "est clt out"] <- "empregos_clt"
colnames(e2006)[colnames(e2006) == "subs ibge"] <- "subs_ibge"
colnames(e2006)[colnames(e2006) == "tipo estbl"] <- "tipo_estabelecimento"
colnames(e2006)[colnames(e2006) == "clas cnae 20"] <- "cnae_20"
colnames(e2006)[colnames(e2006) == "sb clas 20"] <- "sub_cnae_20"



e2006 <- e2006[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]


save(e2006, file="e2006.Rda")
rm(e2006)
colnames(e2007) <- tolower(colnames(e2007))
colnames(e2007)[colnames(e2007) == "cep"] <- "cep"
colnames(e2007)[colnames(e2007) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2007)[colnames(e2007) == "identificad"] <- "cnpj"
colnames(e2007)[colnames(e2007) == "radic cnpj"] <- "radic_cnpj"
colnames(e2007)[colnames(e2007) == "dt abert com"] <- "data_abertura"
colnames(e2007)[colnames(e2007) == "dt baixa com"] <- "data_baixa"
colnames(e2007)[colnames(e2007) == "dt encer or"] <- "data_encerramento"
colnames(e2007)[colnames(e2007) == "municipio"] <- "city"
colnames(e2007)[colnames(e2007) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2007)[colnames(e2007) == "estoque"] <- "empregos"
colnames(e2007)[colnames(e2007) == "est clt out"] <- "empregos_clt"
colnames(e2007)[colnames(e2007) == "subs ibge"] <- "subs_ibge"
colnames(e2007)[colnames(e2007) == "tipo estbl"] <- "tipo_estabelecimento"


e2007 <- e2007[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento")]

save(e2007, file="e2007.Rda")
rm(e2007)
colnames(e2008) <- tolower(colnames(e2008))
colnames(e2008)[colnames(e2008) == "cep"] <- "cep"
colnames(e2008)[colnames(e2008) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2008)[colnames(e2008) == "identificad"] <- "cnpj"
colnames(e2008)[colnames(e2008) == "radic cnpj"] <- "radic_cnpj"
colnames(e2008)[colnames(e2008) == "dt abert com"] <- "data_abertura"
colnames(e2008)[colnames(e2008) == "dt baixa com"] <- "data_baixa"
colnames(e2008)[colnames(e2008) == "dt encer or"] <- "data_encerramento"
colnames(e2008)[colnames(e2008) == "municipio"] <- "city"
colnames(e2008)[colnames(e2008) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2008)[colnames(e2008) == "estoque"] <- "empregos"
colnames(e2008)[colnames(e2008) == "est clt out"] <- "empregos_clt"
colnames(e2008)[colnames(e2008) == "subs ibge"] <- "subs_ibge"
colnames(e2008)[colnames(e2008) == "tipo estbl"] <- "tipo_estabelecimento"
colnames(e2008)[colnames(e2008) == "clas cnae 20"] <- "cnae_20"
colnames(e2008)[colnames(e2008) == "sb clas 20"] <- "sub_cnae_20"

e2008 <- e2008[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2008, file="e2008.Rda")
rm(e2008)
colnames(e2009) <- tolower(colnames(e2009))
colnames(e2009)[colnames(e2009) == "cep"] <- "cep"
colnames(e2009)[colnames(e2009) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2009)[colnames(e2009) == "identificad"] <- "cnpj"
colnames(e2009)[colnames(e2009) == "radic cnpj"] <- "radic_cnpj"
colnames(e2009)[colnames(e2009) == "dt abert com"] <- "data_abertura"
colnames(e2009)[colnames(e2009) == "dt baixa com"] <- "data_baixa"
colnames(e2009)[colnames(e2009) == "dt encer or"] <- "data_encerramento"
colnames(e2009)[colnames(e2009) == "municipio"] <- "city"
colnames(e2009)[colnames(e2009) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2009)[colnames(e2009) == "estoque"] <- "empregos"
colnames(e2009)[colnames(e2009) == "est clt out"] <- "empregos_clt"
colnames(e2009)[colnames(e2009) == "subs ibge"] <- "subs_ibge"
colnames(e2009)[colnames(e2009) == "tipo estbl"] <- "tipo_estabelecimento"
colnames(e2009)[colnames(e2009) == "clas cnae 20"] <- "cnae_20"
colnames(e2009)[colnames(e2009) == "sb clas 20"] <- "sub_cnae_20"

e2009 <- e2009[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2009, file="e2009.Rda")
rm(e2009)
colnames(e2010) <- tolower(colnames(e2010))
colnames(e2010)[colnames(e2010) == "cep"] <- "cep"
colnames(e2010)[colnames(e2010) == "clas cnae 95"] <- "class_cnae_95"
colnames(e2010)[colnames(e2010) == "identificad"] <- "cnpj"
colnames(e2010)[colnames(e2010) == "radic cnpj"] <- "radic_cnpj"
colnames(e2010)[colnames(e2010) == "dt abert com"] <- "data_abertura"
colnames(e2010)[colnames(e2010) == "dt baixa com"] <- "data_baixa"
colnames(e2010)[colnames(e2010) == "dt encer or"] <- "data_encerramento"
colnames(e2010)[colnames(e2010) == "municipio"] <- "city"
colnames(e2010)[colnames(e2010) == "tamestab"] <- "tamanho_estabelecimento"
colnames(e2010)[colnames(e2010) == "estoque"] <- "empregos"
colnames(e2010)[colnames(e2010) == "est clt out"] <- "empregos_clt"
colnames(e2010)[colnames(e2010) == "subs ibge"] <- "subs_ibge"
colnames(e2010)[colnames(e2010) == "tipo estbl"] <- "tipo_estabelecimento"
colnames(e2010)[colnames(e2010) == "clas cnae 20"] <- "cnae_20"
colnames(e2010)[colnames(e2010) == "sb clas 20"] <- "sub_cnae_20"

e2010 <- e2010[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2010, file="e2010.Rda")
rm(e2010)
colnames(e2011) <- tolower(colnames(e2011))
colnames(e2011)[colnames(e2011) == "cep estab"] <- "cep"
colnames(e2011)[colnames(e2011) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2011)[colnames(e2011) == "cnpj / cei"] <- "cnpj"
colnames(e2011)[colnames(e2011) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2011)[colnames(e2011) == "data abertura"] <- "data_abertura"
colnames(e2011)[colnames(e2011) == "data baixa"] <- "data_baixa"
colnames(e2011)[colnames(e2011) == "data encerramento"] <- "data_encerramento"
colnames(e2011)[colnames(e2011) == "município"] <- "city"
colnames(e2011)[colnames(e2011) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2011)[colnames(e2011) == "qtd vínculos ativos"] <- "empregos"
colnames(e2011)[colnames(e2011) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2011)[colnames(e2011) == "ibge subsetor"] <- "subs_ibge"
colnames(e2011)[colnames(e2011) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2011)[colnames(e2011) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2011)[colnames(e2011) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2011 <- e2011[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2011, file="e2011.Rda")
rm(e2011)
colnames(e2012) <- tolower(colnames(e2012))
colnames(e2012)[colnames(e2012) == "cep estab"] <- "cep"
colnames(e2012)[colnames(e2012) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2012)[colnames(e2012) == "cnpj / cei"] <- "cnpj"
colnames(e2012)[colnames(e2012) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2012)[colnames(e2012) == "data abertura"] <- "data_abertura"
colnames(e2012)[colnames(e2012) == "data baixa"] <- "data_baixa"
colnames(e2012)[colnames(e2012) == "data encerramento"] <- "data_encerramento"
colnames(e2012)[colnames(e2012) == "município"] <- "city"
colnames(e2012)[colnames(e2012) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2012)[colnames(e2012) == "qtd vínculos ativos"] <- "empregos"
colnames(e2012)[colnames(e2012) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2012)[colnames(e2012) == "ibge subsetor"] <- "subs_ibge"
colnames(e2012)[colnames(e2012) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2012)[colnames(e2012) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2012)[colnames(e2012) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2012 <- e2012[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2012, file="e2012.Rda")
rm(e2012)
colnames(e2013) <- tolower(colnames(e2013))
colnames(e2013)[colnames(e2013) == "cep estab"] <- "cep"
colnames(e2013)[colnames(e2013) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2013)[colnames(e2013) == "cnpj / cei"] <- "cnpj"
colnames(e2013)[colnames(e2013) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2013)[colnames(e2013) == "data abertura"] <- "data_abertura"
colnames(e2013)[colnames(e2013) == "data baixa"] <- "data_baixa"
colnames(e2013)[colnames(e2013) == "data encerramento"] <- "data_encerramento"
colnames(e2013)[colnames(e2013) == "município"] <- "city"
colnames(e2013)[colnames(e2013) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2013)[colnames(e2013) == "qtd vínculos ativos"] <- "empregos"
colnames(e2013)[colnames(e2013) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2013)[colnames(e2013) == "ibge subsetor"] <- "subs_ibge"
colnames(e2013)[colnames(e2013) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2013)[colnames(e2013) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2013)[colnames(e2013) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2013 <- e2013[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2013, file="e2013.Rda")
rm(e2013)
colnames(e2014) <- tolower(colnames(e2014))
colnames(e2014)[colnames(e2014) == "cep estab"] <- "cep"
colnames(e2014)[colnames(e2014) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2014)[colnames(e2014) == "cnpj / cei"] <- "cnpj"
colnames(e2014)[colnames(e2014) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2014)[colnames(e2014) == "data abertura"] <- "data_abertura"
colnames(e2014)[colnames(e2014) == "data baixa"] <- "data_baixa"
colnames(e2014)[colnames(e2014) == "data encerramento"] <- "data_encerramento"
colnames(e2014)[colnames(e2014) == "município"] <- "city"
colnames(e2014)[colnames(e2014) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2014)[colnames(e2014) == "qtd vínculos ativos"] <- "empregos"
colnames(e2014)[colnames(e2014) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2014)[colnames(e2014) == "ibge subsetor"] <- "subs_ibge"
colnames(e2014)[colnames(e2014) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2014)[colnames(e2014) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2014)[colnames(e2014) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2014 <- e2014[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2014, file="e2014.Rda")
rm(e2014)
colnames(e2015) <- tolower(colnames(e2015))
colnames(e2015)[colnames(e2015) == "cep estab"] <- "cep"
colnames(e2015)[colnames(e2015) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2015)[colnames(e2015) == "cnpj / cei"] <- "cnpj"
colnames(e2015)[colnames(e2015) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2015)[colnames(e2015) == "data abertura"] <- "data_abertura"
colnames(e2015)[colnames(e2015) == "data baixa"] <- "data_baixa"
colnames(e2015)[colnames(e2015) == "data encerramento"] <- "data_encerramento"
colnames(e2015)[colnames(e2015) == "município"] <- "city"
colnames(e2015)[colnames(e2015) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2015)[colnames(e2015) == "qtd vínculos ativos"] <- "empregos"
colnames(e2015)[colnames(e2015) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2015)[colnames(e2015) == "ibge subsetor"] <- "subs_ibge"
colnames(e2015)[colnames(e2015) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2015)[colnames(e2015) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2015)[colnames(e2015) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2015 <- e2015[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2015, file="e2015.Rda")
rm(e2015)
colnames(e2016) <- tolower(colnames(e2016))
colnames(e2016)[colnames(e2016) == "cep estab"] <- "cep"
colnames(e2016)[colnames(e2016) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2016)[colnames(e2016) == "cnpj / cei"] <- "cnpj"
colnames(e2016)[colnames(e2016) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2016)[colnames(e2016) == "data abertura"] <- "data_abertura"
colnames(e2016)[colnames(e2016) == "data baixa"] <- "data_baixa"
colnames(e2016)[colnames(e2016) == "data encerramento"] <- "data_encerramento"
colnames(e2016)[colnames(e2016) == "município"] <- "city"
colnames(e2016)[colnames(e2016) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2016)[colnames(e2016) == "qtd vínculos ativos"] <- "empregos"
colnames(e2016)[colnames(e2016) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2016)[colnames(e2016) == "ibge subsetor"] <- "subs_ibge"
colnames(e2016)[colnames(e2016) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2016)[colnames(e2016) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2016)[colnames(e2016) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2016 <- e2016[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2016, file="e2016.Rda")
rm(e2016)
colnames(e2017) <- tolower(colnames(e2017))
colnames(e2017)[colnames(e2017) == "cep estab"] <- "cep"
colnames(e2017)[colnames(e2017) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2017)[colnames(e2017) == "cnpj / cei"] <- "cnpj"
colnames(e2017)[colnames(e2017) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2017)[colnames(e2017) == "data abertura"] <- "data_abertura"
colnames(e2017)[colnames(e2017) == "data baixa"] <- "data_baixa"
colnames(e2017)[colnames(e2017) == "data encerramento"] <- "data_encerramento"
colnames(e2017)[colnames(e2017) == "município"] <- "city"
colnames(e2017)[colnames(e2017) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2017)[colnames(e2017) == "qtd vínculos ativos"] <- "empregos"
colnames(e2017)[colnames(e2017) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2017)[colnames(e2017) == "ibge subsetor"] <- "subs_ibge"
colnames(e2017)[colnames(e2017) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2017)[colnames(e2017) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2017)[colnames(e2017) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2017 <- e2017[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2017, file="e2017.Rda")
rm(e2017)
e2018 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2018ID/ESTB2018ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

colnames(e2018) <- tolower(colnames(e2018))
colnames(e2018)[colnames(e2018) == "cep estab"] <- "cep"
colnames(e2018)[colnames(e2018) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2018)[colnames(e2018) == "cnpj / cei"] <- "cnpj"
colnames(e2018)[colnames(e2018) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2018)[colnames(e2018) == "data abertura"] <- "data_abertura"
colnames(e2018)[colnames(e2018) == "data baixa"] <- "data_baixa"
colnames(e2018)[colnames(e2018) == "data encerramento"] <- "data_encerramento"
colnames(e2018)[colnames(e2018) == "município"] <- "city"
colnames(e2018)[colnames(e2018) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2018)[colnames(e2018) == "qtd vínculos ativos"] <- "empregos"
colnames(e2018)[colnames(e2018) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2018)[colnames(e2018) == "ibge subsetor"] <- "subs_ibge"
colnames(e2018)[colnames(e2018) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2018)[colnames(e2018) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2018)[colnames(e2018) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2018 <- e2018[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2018, file="e2018.Rda")
rm(e2018)
e2019 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2019ID/ESTB2019ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

colnames(e2019) <- tolower(colnames(e2019))
colnames(e2019)[colnames(e2019) == "cep estab"] <- "cep"
colnames(e2019)[colnames(e2019) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2019)[colnames(e2019) == "cnpj / cei"] <- "cnpj"
colnames(e2019)[colnames(e2019) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2019)[colnames(e2019) == "data abertura"] <- "data_abertura"
colnames(e2019)[colnames(e2019) == "data baixa"] <- "data_baixa"
colnames(e2019)[colnames(e2019) == "data encerramento"] <- "data_encerramento"
colnames(e2019)[colnames(e2019) == "município"] <- "city"
colnames(e2019)[colnames(e2019) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2019)[colnames(e2019) == "qtd vínculos ativos"] <- "empregos"
colnames(e2019)[colnames(e2019) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2019)[colnames(e2019) == "ibge subsetor"] <- "subs_ibge"
colnames(e2019)[colnames(e2019) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2019)[colnames(e2019) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2019)[colnames(e2019) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2019 <- e2019[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2019, file="e2019.Rda")
rm(e2019)
e2020 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2020ID/ESTB2020ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

colnames(e2020) <- tolower(colnames(e2020))
colnames(e2020)[colnames(e2020) == "cep estab"] <- "cep"
colnames(e2020)[colnames(e2020) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2020)[colnames(e2020) == "cnpj / cei"] <- "cnpj"
colnames(e2020)[colnames(e2020) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2020)[colnames(e2020) == "data abertura"] <- "data_abertura"
colnames(e2020)[colnames(e2020) == "data baixa"] <- "data_baixa"
colnames(e2020)[colnames(e2020) == "data encerramento"] <- "data_encerramento"
colnames(e2020)[colnames(e2020) == "município"] <- "city"
colnames(e2020)[colnames(e2020) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2020)[colnames(e2020) == "qtd vínculos ativos"] <- "empregos"
colnames(e2020)[colnames(e2020) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2020)[colnames(e2020) == "ibge subsetor"] <- "subs_ibge"
colnames(e2020)[colnames(e2020) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2020)[colnames(e2020) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2020)[colnames(e2020) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2020 <- e2020[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2020, file="e2020.Rda")
rm(e2020)
e2021 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2021ID/ESTB2021ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

colnames(e2021) <- tolower(colnames(e2021))
colnames(e2021)[colnames(e2021) == "cep estab"] <- "cep"
colnames(e2021)[colnames(e2021) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2021)[colnames(e2021) == "cnpj / cei"] <- "cnpj"
colnames(e2021)[colnames(e2021) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2021)[colnames(e2021) == "data abertura"] <- "data_abertura"
colnames(e2021)[colnames(e2021) == "data baixa"] <- "data_baixa"
colnames(e2021)[colnames(e2021) == "data encerramento"] <- "data_encerramento"
colnames(e2021)[colnames(e2021) == "município"] <- "city"
colnames(e2021)[colnames(e2021) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2021)[colnames(e2021) == "qtd vínculos ativos"] <- "empregos"
colnames(e2021)[colnames(e2021) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2021)[colnames(e2021) == "ibge subsetor"] <- "subs_ibge"
colnames(e2021)[colnames(e2021) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2021)[colnames(e2021) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2021)[colnames(e2021) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2021 <- e2021[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2021, file="e2021.Rda")
rm(e2021)
e2022 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2022ID/RAIS_ESTAB_ID.txt.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))

colnames(e2022) <- tolower(colnames(e2022))
colnames(e2022)[colnames(e2022) == "cep estab"] <- "cep"
colnames(e2022)[colnames(e2022) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2022)[colnames(e2022) == "cnpj / cei"] <- "cnpj"
colnames(e2022)[colnames(e2022) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2022)[colnames(e2022) == "data abertura"] <- "data_abertura"
colnames(e2022)[colnames(e2022) == "data baixa"] <- "data_baixa"
colnames(e2022)[colnames(e2022) == "data encerramento"] <- "data_encerramento"
colnames(e2022)[colnames(e2022) == "município"] <- "city"
colnames(e2022)[colnames(e2022) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2022)[colnames(e2022) == "qtd vínculos ativos"] <- "empregos"
colnames(e2022)[colnames(e2022) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2022)[colnames(e2022) == "ibge subsetor"] <- "subs_ibge"
colnames(e2022)[colnames(e2022) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2022)[colnames(e2022) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2022)[colnames(e2022) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2022 <- e2022[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2022, file="e2022.Rda")
rm(e2022)
e2023 <- vroom("G:/Meu Drive/RAIS_SUDENE/ESTABELECIMENTOS/Estb2023ID/RAIS_ESTAB_ID.txt",
               delim = ";",
               locale = locale(encoding = "latin1", decimal_mark = ","))
colnames(e2023) <- tolower(colnames(e2023))
colnames(e2023)[colnames(e2023) == "cep estab"] <- "cep"
colnames(e2023)[colnames(e2023) == "cnae 95 classe"] <- "class_cnae_95"
colnames(e2023)[colnames(e2023) == "cnpj / cei"] <- "cnpj"
colnames(e2023)[colnames(e2023) == "cnpj raiz"] <- "radic_cnpj"
colnames(e2023)[colnames(e2023) == "data abertura"] <- "data_abertura"
colnames(e2023)[colnames(e2023) == "data baixa"] <- "data_baixa"
colnames(e2023)[colnames(e2023) == "data encerramento"] <- "data_encerramento"
colnames(e2023)[colnames(e2023) == "município"] <- "city"
colnames(e2023)[colnames(e2023) == "tamanho estabelecimento"] <- "tamanho_estabelecimento"
colnames(e2023)[colnames(e2023) == "qtd vínculos ativos"] <- "empregos"
colnames(e2023)[colnames(e2023) == "qtd vínculos clt"] <- "empregos_clt"
colnames(e2023)[colnames(e2023) == "ibge subsetor"] <- "subs_ibge"
colnames(e2023)[colnames(e2023) == "tipo estab"] <- "tipo_estabelecimento"
colnames(e2023)[colnames(e2023) == "cnae 2.0 classe"] <- "cnae_20"
colnames(e2023)[colnames(e2023) == "cnae 2.0 subclasse"] <- "sub_cnae_20"

e2023 <- e2023[, c("cep", "class_cnae_95", "cnpj", "radic_cnpj", "data_abertura", 
                   "data_baixa", "data_encerramento", "city", "tamanho_estabelecimento", 
                   "empregos", "empregos_clt", "subs_ibge", "tipo_estabelecimento", "cnae_20", "sub_cnae_20")]

save(e2023, file="e2023.Rda")
rm(e2023)

Carregando os .Rda dos Estabelecimentos

No arquivo, estas bases estão com o nome eANO. Ou seja, e2023.Rda é o arquivo da RAIS Estabelecimento para o ano de 2023 somente com as variáveis que serão usadas na análise.

Carregando os Estabelecimentos de 2002 a 2023:

for (ano in 2002:2023) {
  load(paste0("e", ano, ".Rda"))
}

Criando a variável ano para que seja possível saber de qual ano a informação é quando estiver tudo junto:

e2002$ano <- 2002
e2003$ano <- 2003
e2004$ano <- 2004
e2005$ano <- 2005
e2006$ano <- 2006
e2007$ano <- 2007
e2008$ano <- 2008
e2009$ano <- 2009
e2010$ano <- 2010
e2011$ano <- 2011
e2012$ano <- 2012
e2013$ano <- 2013
e2014$ano <- 2014
e2015$ano <- 2015
e2016$ano <- 2016
e2017$ano <- 2017
e2018$ano <- 2018
e2019$ano <- 2019
e2020$ano <- 2020
e2021$ano <- 2021
e2022$ano <- 2022
e2023$ano <- 2023

Criando bases intermediárias para deixar a operação menos intensiva computacionalmente.

intermediaria1 <- bind_rows(e2002, e2003, e2004, e2005, e2006, e2007)
#intermediaria2 <-bind_rows(e2008, e2009, e2010, e2011, e2012, e2013, e2014, e2015, e2016, e2017, e2018, e2019, e2020, e2021, e2022, e2023)

O rbind não é possível se houver colunas com formatos diferentes para a mesma variável – por exemplo, se houver um ano em formato numérico e outro como character, mesmo que a variável seja a mesma, o rbind não ocorre. Segue a compatibilização:

bases <- list(e2008, e2009, e2010, e2011, e2012, e2013, e2014, e2015,
              e2016, e2017, e2018, e2019, e2020, e2021, e2022, e2023)

# Identificar todas as colunas presentes em todas as bases
colunas <- unique(unlist(lapply(bases, names)))

# Função para garantir que as colunas tenham o mesmo tipo
uniformizar_colunas <- function(bases, colunas) {
  for (col in colunas) {
    # Verificar o tipo de cada coluna em todas as bases
    tipos <- sapply(bases, function(base) {
      if (col %in% names(base)) {
        class(base[[col]])
      } else {
        NA
      }
    })
    
    # Se houver mais de um tipo único (excluindo NA), forçar a conversão para character
    tipos_unicos <- unique(na.omit(tipos))
    if (length(tipos_unicos) > 1) {
      warning(paste("Coluna", col, "tem tipos incompatíveis. Convertendo para character."))
      bases <- lapply(bases, function(base) {
        if (col %in% names(base)) {
          base[[col]] <- as.character(base[[col]])
        }
        base
      })
    }
  }
  return(bases)
}

# Uniformizar as colunas
bases <- uniformizar_colunas(bases, colunas)

# Combinar as bases usando bind_rows
intermediaria2 <- bind_rows(bases)
# Função para verificar e corrigir tipos de colunas
corrigir_tipos <- function(base1, base2) {
  # Lista de todas as colunas presentes em ambas as bases
  colunas <- union(names(base1), names(base2))
  
  for (col in colunas) {
    # Verificar se a coluna existe em ambas as bases
    if (col %in% names(base1) && col %in% names(base2)) {
      # Verificar se os tipos são diferentes
      tipo1 <- class(base1[[col]])
      tipo2 <- class(base2[[col]])
      
      if (tipo1 != tipo2) {
        warning(paste("Coluna", col, "tem tipos incompatíveis:",
                      tipo1, "em base1 e", tipo2, "em base2. Convertendo para character."))
        
        # Converter ambas as colunas para character
        base1[[col]] <- as.character(base1[[col]])
        base2[[col]] <- as.character(base2[[col]])
      }
    } else if (col %in% names(base1)) {
      # Se a coluna só existe em base1, adicionar NA em base2
      base2[[col]] <- NA
    } else if (col %in% names(base2)) {
      # Se a coluna só existe em base2, adicionar NA em base1
      base1[[col]] <- NA
    }
  }
  
  return(list(base1 = base1, base2 = base2))
}

# Aplicar a função para corrigir tipos
bases_corrigidas <- corrigir_tipos(intermediaria1, intermediaria2)

# Atualizar as bases
intermediaria1 <- bases_corrigidas$base1
intermediaria2 <- bases_corrigidas$base2

# Combinar as bases usando bind_rows
raisestabelecimentos <- bind_rows(intermediaria1, intermediaria2)

save(raisestabelecimentos, file="raisestabelecimentos.Rda")

Finalmente chegamos à raisestabelecimentos.Rda que é a base de estabelecimentos para o Brasil inteiro.

load("raisestabelecimentos.Rda")
# Verificar o nome do objeto carregado
# (Às vezes, o nome do arquivo não é o mesmo do objeto dentro dele)
nome_objeto <- ls()[grepl("rais", ls(), ignore.case = TRUE)]
base <- get(nome_objeto)

# Extrair informações básicas
nomes_variaveis <- names(base)
num_observacoes <- nrow(base)
num_variaveis <- ncol(base)

# Criar uma tabela com as informações
informacoes <- data.frame(
  Descricao = c("Número de observações", "Número de variáveis", "Nomes das variáveis"),
  Valor = c(num_observacoes, num_variaveis, paste(nomes_variaveis, collapse = ", "))
)

# Exibir a tabela
print(informacoes, n = Inf)
write.csv(informacoes, "informacoes.csv", row.names = FALSE)
library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
# Criando o dataframe com as informações
tabela_info <- data.frame(
  Descricao = c("Número de observações", "Número de variáveis", "Nomes das variáveis"),
  Valor = c("166754229", "16", "cep, class_cnae_95, cnpj, radic_cnpj, data_abertura, data_baixa, data_encerramento, city, tamanho_estabelecimento, empregos, empregos_clt, subs_ibge, tipo_estabelecimento, ano, cnae_20, sub_cnae_20")
)

# Exibir a tabela no RMarkdown
kable(tabela_info, caption = "Resumo das Informações da Base de Dados")
Resumo das Informações da Base de Dados
Descricao Valor
Número de observações 166754229
Número de variáveis 16
Nomes das variáveis cep, class_cnae_95, cnpj, radic_cnpj, data_abertura, data_baixa, data_encerramento, city, tamanho_estabelecimento, empregos, empregos_clt, subs_ibge, tipo_estabelecimento, ano, cnae_20, sub_cnae_20

Ainda na tentativa de deixar a base de dados um pouco mais leve, vamos deixar apenas os estados da Região Nordeste mais Espírito Santo e Minas Gerais.

load("raisestabelecimentos.Rda")

ibge_ufs <- data.frame(
  codigo_ibge = c(12, 27, 16, 13, 29, 23, 53, 32, 52, 21, 51, 50, 31, 15, 25, 41, 26, 22, 33, 24, 43, 11, 14, 42, 35, 28, 17),
  uf = c("AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP", "SE", "TO")
)

raisestabelecimentos <- raisestabelecimentos %>%
  mutate(
    codigo_uf = as.integer(substr(city, 1, 2))  # Extrai os 2 primeiros dígitos
  ) %>%
  left_join(ibge_ufs, by = c("codigo_uf" = "codigo_ibge"))  # Junta com tabela de siglas

Filtrando:

rais_sudene <- raisestabelecimentos %>% 
  filter(uf %in% c("AL", "BA", "CE", "MA", "PB", "PE", "PI", "RN", "SE", "MG", "ES"))


save(raisestabelecimentos, file="raisestabelecimentos.Rda")
save(rais_sudene, file="rais_sudene.Rda")

Então, a base de dados "rais_sudene.Rda" é a base para estabelecimentos somente para o Nordeste mais Espírito Santo e Minas Gerais.

Vínculos (RAIS)

Como falamos anteriormente, a RAIS-Vínculos é muito maior do que a parte de Estabelecimentos. Por isso, essas manipulações não foram feitas de forma remota no Servidor do IPPDS-UFV (255GB de memória RAM).

Todas as manipulações feitas aqui vão dar como resultado o arquivo merge_all.Rda que contém os valores por CNPJ:

O que foi feito no Servidor do IPPDS

Incluindo as informações dos salários etc (merge_all.Rda)

Pacotes

library(vroom)
library(dplyr)
library(arrow)
library(archive)
library(janitor)

A gente vai olhar só as 10 primeiras observações:

#No PC do GPAD 
setwd("D:/RAIS")


library(parallel)

# Detecta o número de núcleos disponíveis
num_cores <- detectCores()
cat("Número de núcleos detectados:", num_cores, "\n")

Agora vamos tentar fazer a leitura do arquivo inteiro:

#"D:\RAIS\VINCULOS\2023.zip"
#D:\RAIS\VINCULOS\2023\RAIS_VINC_ID_NORDESTE.7z
V2023_1 <- vroom("D:/RAIS/VINCULOS/2023.zip/RAIS_VINC_ID_NORDESTE.7z",
                      delim = ";",
                      locale=locale(encoding="latin1", decimal_mark = ","))

V2023_2 <- vroom("D:/RAIS/VINCULOS/2023/RAIS_VINC_ID_MG_ES_RJ.7z",
                      delim = ";",
                      locale=locale(encoding="latin1", decimal_mark = ","))

V2023_3 <- vroom("D:/RAIS/VINCULOS/2023/RAIS_VINC_ID_NORTE.7z",
                      delim = ";",
                      locale=locale(encoding="latin1", decimal_mark = ","))


V2023_1$`Qtd Hora Contr` <- as.character(V2023_1$`Qtd Hora Contr`)
V2023_2$`Qtd Hora Contr` <- as.character(V2023_2$`Qtd Hora Contr`)
V2023_3$`Qtd Hora Contr` <- as.character(V2023_3$`Qtd Hora Contr`)


V2023 <- bind_rows(V2023_1, V2023_2, V2023_3)

rm(t1, V2023_1, V2023_2, V2023_3)


save(V2023, file = "D:/RAIS/VINCULOS/V2023.Rda")

rm(V2023)
load("V2023.Rda")

Tem que fazer este mesmo movimento para todos os anos da base.

2022

#"D:\RAIS\VINCULOS\2022\RAIS_VINC_ID_NORDESTE\RAIS_VINC_ID_NORDESTE.txt""
#"D:\RAIS\VINCULOS\2022\RAIS_VINC_ID_NORTE\RAIS_VINC_ID_NORTE.txt"
#"D:\RAIS\VINCULOS\2022\RAIS_VINC_ID_MG_ES_RJ\RAIS_VINC_ID_MG_ES_RJ.txt"

V2022_1 <- vroom("D:/RAIS/VINCULOS/2022/RAIS_VINC_ID_NORDESTE/RAIS_VINC_ID_NORDESTE.txt",
                      delim = ";",
                      locale=locale(encoding="latin1", decimal_mark = ","))

V2022_2 <- vroom("D:/RAIS/VINCULOS/2022/RAIS_VINC_ID_NORTE/RAIS_VINC_ID_NORTE.txt",
                      delim = ";",
                      locale=locale(encoding="latin1", decimal_mark = ","))

V2022_3 <- vroom("D:/RAIS/VINCULOS/2022/RAIS_VINC_ID_MG_ES_RJ/RAIS_VINC_ID_MG_ES_RJ.txt",
                      delim = ";",
                      locale=locale(encoding="latin1", decimal_mark = ","))

V2022_1$Nacionalidade <- as.character(V2022_1$Nacionalidade)
V2022_2$Nacionalidade <- as.character(V2022_2$Nacionalidade)
V2022_3$Nacionalidade <- as.character(V2022_3$Nacionalidade)

V2022_1$`CBO Ocupação 2002`<-as.character(V2022_1$`CBO Ocupação 2002`)
V2022_2$`CBO Ocupação 2002`<-as.character(V2022_2$`CBO Ocupação 2002`)
V2022_2$`CBO Ocupação 2002`<-as.character(V2022_2$`CBO Ocupação 2002`)


V2022_1$`Qtd Hora Contr` <- as.character(V2022_1$`Qtd Hora Contr`)
V2022_2$`Qtd Hora Contr` <- as.character(V2022_2$`Qtd Hora Contr`)
V2022_3$`Qtd Hora Contr` <- as.character(V2022_3$`Qtd Hora Contr`)

V2022 <- bind_rows(V2022_1, V2022_2, V2022_3)
save(V2022, file = "D:/RAIS/VINCULOS/V2022.Rda")

2021

V2021_1 <- vroom("D:/RAIS/VINCULOS/2021/RAIS_VINC_ID_NORDESTE/RAIS_VINC_ID_NORDESTE.txt",
                 delim = ";",
                 locale = locale(encoding = "latin1", decimal_mark = ","))

V2021_2 <- vroom("D:/RAIS/VINCULOS/2021/RAIS_VINC_ID_NORTE/RAIS_VINC_ID_NORTE.txt",
                 delim = ";",
                 locale = locale(encoding = "latin1", decimal_mark = ","))

V2021_3 <- vroom("D:/RAIS/VINCULOS/2021/RAIS_VINC_ID_MG_ES_RJ/RAIS_VINC_ID_MG_ES_RJ.txt",
                 delim = ";",
                 locale = locale(encoding = "latin1", decimal_mark = ","))
# Verificar os tipos de colunas de cada base
tipos_V2021_1 <- sapply(V2021_1, class)
tipos_V2021_2 <- sapply(V2021_2, class)
tipos_V2021_3 <- sapply(V2021_3, class)

inconsistentes <- data.frame(
  coluna = names(V2021_1),
  tipo_V2021_1 = tipos_V2021_1,
  tipo_V2021_2 = tipos_V2021_2,
  tipo_V2021_3 = tipos_V2021_3
)

# Filtrar colunas com tipos inconsistentes
inconsistentes <- inconsistentes %>%
  filter(tipo_V2021_1 != tipo_V2021_2 | tipo_V2021_1 != tipo_V2021_3 | tipo_V2021_2 != tipo_V2021_3)


converter_para_character <- function(df, colunas) {
  df <- df %>%
    mutate(across(all_of(colunas), as.character))
  return(df)
}

# Lista de colunas inconsistentes
colunas_inconsistentes <- inconsistentes$coluna

# Aplicar a conversão para character nas colunas inconsistentes
V2021_1 <- converter_para_character(V2021_1, colunas_inconsistentes)
V2021_2 <- converter_para_character(V2021_2, colunas_inconsistentes)
V2021_3 <- converter_para_character(V2021_3, colunas_inconsistentes)

V2021 <- bind_rows(V2021_1, V2021_2, V2021_3)

save(V2021, file = "D:/RAIS/VINCULOS/V2021.Rda")

2020, 2019, 2018

# Função para converter colunas inconsistentes para character
converter_para_character <- function(df, colunas) {
  df <- df %>%
    mutate(across(all_of(colunas), as.character))
  return(df)
}

# Função para verificar e corrigir tipos de colunas
verificar_e_corrigir_tipos <- function(df1, df2, df3) {
  # Verificar tipos de colunas
  tipos_df1 <- sapply(df1, class)
  tipos_df2 <- sapply(df2, class)
  tipos_df3 <- sapply(df3, class)
  
  # Identificar colunas com tipos inconsistentes
  inconsistentes <- data.frame(
    coluna = names(df1),
    tipo_df1 = tipos_df1,
    tipo_df2 = tipos_df2,
    tipo_df3 = tipos_df3
  ) %>%
    filter(tipo_df1 != tipo_df2 | tipo_df1 != tipo_df3 | tipo_df2 != tipo_df3)
  
  # Converter colunas inconsistentes para character
  colunas_inconsistentes <- inconsistentes$coluna
  df1 <- converter_para_character(df1, colunas_inconsistentes)
  df2 <- converter_para_character(df2, colunas_inconsistentes)
  df3 <- converter_para_character(df3, colunas_inconsistentes)
  
  return(list(df1 = df1, df2 = df2, df3 = df3))
}

# Carregar e processar os dados de 2020 a 2009
# 2020
V2020_1 <- vroom("D:/RAIS/VINCULOS/2020/RAIS_VINC_ID_NORDESTE/RAIS_VINC_ID_NORDESTE.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
V2020_2 <- vroom("D:/RAIS/VINCULOS/2020/RAIS_VINC_ID_NORTE/RAIS_VINC_ID_NORTE.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
V2020_3 <- vroom("D:/RAIS/VINCULOS/2020/RAIS_VINC_ID_MG_ES_RJ/RAIS_VINC_ID_MG_ES_RJ.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
corrigido_2020 <- verificar_e_corrigir_tipos(V2020_1, V2020_2, V2020_3)
V2020 <- bind_rows(corrigido_2020$df1, corrigido_2020$df2, corrigido_2020$df3)

# 2019
V2019_1 <- vroom("D:/RAIS/VINCULOS/2019/RAIS_VINC_ID_NORDESTE/RAIS_VINC_ID_NORDESTE.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
V2019_2 <- vroom("D:/RAIS/VINCULOS/2019/RAIS_VINC_ID_NORTE/RAIS_VINC_ID_NORTE.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
V2019_3 <- vroom("D:/RAIS/VINCULOS/2019/RAIS_VINC_ID_MG_ES_RJ/RAIS_VINC_ID_MG_ES_RJ.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
corrigido_2019 <- verificar_e_corrigir_tipos(V2019_1, V2019_2, V2019_3)
V2019 <- bind_rows(corrigido_2019$df1, corrigido_2019$df2, corrigido_2019$df3)

# 2018
V2018_1 <- vroom("D:/RAIS/VINCULOS/2018/RAIS_VINC_ID_NORDESTE/RAIS_VINC_ID_NORDESTE.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
V2018_2 <- vroom("D:/RAIS/VINCULOS/2018/RAIS_VINC_ID_NORTE/RAIS_VINC_ID_NORTE.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
V2018_3 <- vroom("D:/RAIS/VINCULOS/2018/RAIS_VINC_ID_MG_ES_RJ/RAIS_VINC_ID_MG_ES_RJ.txt",
                 delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","))
corrigido_2018 <- verificar_e_corrigir_tipos(V2018_1, V2018_2, V2018_3)
V2018 <- bind_rows(corrigido_2018$df1, corrigido_2018$df2, corrigido_2018$df3)


save(V2018, file = "D:/RAIS/VINCULOS/V2018.Rda")
save(V2019, file = "D:/RAIS/VINCULOS/V2019.Rda")
save(V2020, file = "D:/RAIS/VINCULOS/V2020.Rda")

2017, 2016, 2015, 2014, 2013, 2012, 2010, 2009

Aqui os códigos mudam de nome. Não dá pra manter o mesmo padrão.

Descompactando:

archive::archive_extract("D:/RAIS/VINCULOS/2009/PB2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/PE2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/PI2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/PR2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/RJ2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/RN2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/RO2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/RR2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/RS2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/SC2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/SE2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/SP2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/TO2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/AC2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/AL2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/AM2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/AP2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/BA2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/CE2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/DF2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/ES2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/GO2009ID2.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/MA2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/MG2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/MS2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/MT2009ID.7z", dir = "2009/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2009/PA2009ID.7z", dir = "2009/descompactados")

# 2010 
archive::archive_extract("D:/RAIS/VINCULOS/2010/Estb2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/GO2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/MA2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/MG2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/MS2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/MT2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/PA2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/PB2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/PE2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/PI2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/PR2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/RJ2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/RN2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/RO2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/RR2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/RS2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/SC2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/SE2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/SP2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/TO2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/AC2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/AL2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/AM2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/AP2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/BA2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/CE2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/DF2010ID.7z", dir = "2010/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2010/ES2010ID.7z", dir = "2010/descompactados")

#2011
archive::archive_extract("D:/RAIS/VINCULOS/2011/CE2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/DF2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/ES2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/Estb2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/GO2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/MA2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/MG2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/MS2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/MT2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/PA2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/PB2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/PE2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/PI2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/PR2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/RJ2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/RN2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/RO2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/RR2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/RS2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/SC2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/SE2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/SP2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/TO2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/AC2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/AL2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/AM2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/AP2011ID.7z", dir = "2011/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2011/BA2011ID.7z", dir = "2011/descompactados")

#2012
archive::archive_extract("D:/RAIS/VINCULOS/2012/CE2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/DF2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/ES2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/Estb2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/GO2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/MA2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/MG2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/MS2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/MT2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/PA2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/PB2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/PE2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/PI2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/PR2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/RJ2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/RN2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/RO2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/RR2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/RS2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/SC2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/SE2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/SP2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/TO2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/AC2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/AL2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/AM2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/AP2012ID.7z", dir = "2012/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2012/BA2012ID.7z", dir = "2012/descompactados")
#2013
archive::archive_extract("D:/RAIS/VINCULOS/2013/Estb2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/GO2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/MA2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/MG2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/MS2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/MT2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/PA2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/PB2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/PE2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/PI2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/PR2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/RJ2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/RN2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/RO2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/RR2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/RS2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/SC2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/SE2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/SP2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/TO2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/AC2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/AL2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/AM2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/AP2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/BA2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/CE2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/DF2013ID.7z", dir = "2013/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2013/ES2013ID.7z", dir = "2013/descompactados")

#2014

archive::archive_extract("D:/RAIS/VINCULOS/2014/PB2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/PE2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/PI2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/PR2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/RJ2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/RN2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/RO2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/RR2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/RS2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/SC2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/SE2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/SP2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/TO2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/AC2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/AL2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/AM2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/AP2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/BA2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/CE2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/DF2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/ES2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/Estb2014.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/GO2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/MA2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/MG2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/MS2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/MT2014ID.7z", dir = "2014/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2014/PA2014ID.7z", dir = "2014/descompactados")

#2015
archive::archive_extract("D:/RAIS/VINCULOS/2015/RS2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/SC2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/SE2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/SP2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/TO2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/AC2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/AL2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/AM2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/AP2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/BA2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/CE2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/DF2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/ES2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/ESTB2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/GO2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/MA2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/MG2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/MS2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/MT2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/PA2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/PB2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/PE2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/PI2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/PR2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/RJ2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/RN2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/RO2015ID.7z", dir = "2015/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2015/RR2015ID.7z", dir = "2015/descompactados")

# 2016 
archive::archive_extract("D:/RAIS/VINCULOS/2016/PI2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/PR2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/RJ2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/RN2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/RO2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/RR2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/RS2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/SC2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/SE2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/SP2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/TO2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/AC2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/AL2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/AM2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/AP2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/BA2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/CE2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/DF2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/ES2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/Estb2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/GO2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/MA2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/MG2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/MS2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/MT2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/PA2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/PB2016ID.7z", dir = "2016/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2016/PE2016ID.7z", dir = "2016/descompactados")


# 2017
archive::archive_extract("D:/RAIS/VINCULOS/2017/PI2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/PR2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/RJ2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/RN2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/RO2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/RR2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/RS2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/SC2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/SE2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/SP2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/TO2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/AC2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/AL2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/AM2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/AP2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/BA2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/CE2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/DF2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/ES2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/ESTB2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/GO2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/MA2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/MG2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/MS2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/MT2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/PA2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/PB2017ID.7z", dir = "2017/descompactados")
archive::archive_extract("D:/RAIS/VINCULOS/2017/PE2017ID.7z", dir = "2017/descompactados")

Gerando os arquivos de 2017-2009

Não estou fazendo pro Brasil todo. Só Sudene e Norte.

carregar_e_unir_dados <- function(arquivos) {
  # Carregar cada arquivo e converter todas as colunas para character
  dados_lista <- lapply(arquivos, function(arquivo) {
    vroom(arquivo, delim = ";", locale = locale(encoding = "latin1", decimal_mark = ","), col_types = cols(.default = "c"))
  })
  
  # Unir todos os data frames em um único data frame
  dados_unidos <- bind_rows(dados_lista)
  
  # Retornar os dados unidos
  return(dados_unidos)
}

# Caminho base onde os arquivos estão armazenados
caminho_base <- "D:/RAIS/VINCULOS/"

# Estados a serem carregados (Norte, Nordeste e Sudene: MG e ES)
estados <- c("AC", "AP", "AM", "PA", "RO", "RR", "TO",  # Norte
             "AL", "BA", "CE", "MA", "PB", "PE", "PI", "RN", "SE",  # Nordeste
             "MG", "ES")  # Sudene

# ------------------------------------------------------------------------------------
# Ano 2009
arquivos_2009 <- paste0(caminho_base, "2009/descompactados/", estados, "2009ID.txt")
V2009 <- carregar_e_unir_dados(arquivos_2009)
save(V2009, file = paste0(caminho_base, "V2009.Rda"))

# ------------------------------------------------------------------------------------
# Ano 2010
arquivos_2010 <- paste0(caminho_base, "2010/descompactados/", estados, "2010ID.txt")
V2010 <- carregar_e_unir_dados(arquivos_2010)
save(V2010, file = paste0(caminho_base, "V2010.Rda"))

# ------------------------------------------------------------------------------------
# Ano 2011
arquivos_2011 <- paste0(caminho_base, "2011/descompactados/", estados, "2011ID.txt")
V2011 <- carregar_e_unir_dados(arquivos_2011)
save(V2011, file = paste0(caminho_base, "V2011.Rda"))

# ------------------------------------------------------------------------------------
# Ano 2012
arquivos_2012 <- paste0(caminho_base, "2012/descompactados/", estados, "2012ID.txt")
V2012 <- carregar_e_unir_dados(arquivos_2012)
save(V2012, file = paste0(caminho_base, "V2012.Rda"))

# ------------------------------------------------------------------------------------
# Ano 2013
arquivos_2013 <- paste0(caminho_base, "2013/descompactados/", estados, "2013ID.txt")
V2013 <- carregar_e_unir_dados(arquivos_2013)
save(V2013, file = paste0(caminho_base, "V2013.Rda"))

# ------------------------------------------------------------------------------------
# Ano 2014
arquivos_2014 <- paste0(caminho_base, "2014/descompactados/", estados, "2014ID.txt")
V2014 <- carregar_e_unir_dados(arquivos_2014)
save(V2014, file = paste0(caminho_base, "V2014.Rda"))

# ------------------------------------------------------------------------------------
# Ano 2015
arquivos_2015 <- paste0(caminho_base, "2015/descompactados/", estados, "2015ID.txt")
V2015 <- carregar_e_unir_dados(arquivos_2015)
save(V2015, file = paste0(caminho_base, "V2015.Rda"))

# ------------------------------------------------------------------------------------
# Ano 2016
arquivos_2016 <- paste0(caminho_base, "2016/descompactados/", estados, "2016ID.txt")
V2016 <- carregar_e_unir_dados(arquivos_2016)
save(V2016, file = paste0(caminho_base, "V2016.Rda"))

# ------------------------------------------------------------------------------------
# Ano 2017
arquivos_2017 <- paste0(caminho_base, "2017/descompactados/", estados, "2017ID.txt")
V2017 <- carregar_e_unir_dados(arquivos_2017)
save(V2017, file = paste0(caminho_base, "V2017.Rda"))

Compilando os diferentes anos da parte de Vínculos

Acho que a junção nao pode ser feita para todas as variáveis. Tenho que olhar base por base.
Acho que esse é o último passo. Tá quase.

library(janitor)
# Carregar as bases finais
load("V2009.Rda")
load("V2010.Rda")
load("V2011.Rda")
load("V2012.Rda")
load("V2013.Rda")
load("V2014.Rda")
load("V2015.Rda")
load("V2016.Rda")
load("V2017.Rda")
load("V2018.Rda")
load("V2019.Rda")
load("V2020.Rda")
load("V2021.Rda")
load("V2022.Rda")
load("V2023.Rda")  

# Lista de bases de dados (substitua pelos seus data frames)
bases <- list(V2009, V2010, V2011, V2012, V2013, V2014, V2015, V2016, V2017, V2018, V2019, V2020, V2021, V2022, V2023)

# Aplicar a função clean_names a todas as bases
bases_simplificadas <- lapply(bases, clean_names)

# Atualizar as bases originais no ambiente global (opcional)
for (i in seq_along(bases_simplificadas)) {
  assign(paste0("V", 2008 + i), bases_simplificadas[[i]])
}

Fazendo um ano de cada vez

Os nomes já estão simplificados, agora é preciso compatibilizar as variáveis de interesse.

Vou fazer isso devagar, uma de cada vez.

Vinculos de 2009

load("V2009.Rda")

V2009 <- V2009 %>% clean_names()

V2009 <- V2009 %>%
  rename(cnpj = identificad) %>%
  filter(emp_em_31_12 == 1)


merge_V2009 <- V2009 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(genero == "MASCULINO", na.rm = TRUE),
    mulheres = sum(genero == "FEMININO", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", rem_med_r)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", temp_empr)), na.rm = TRUE),
    idade = mean(2009 - as.numeric(substr(dt_nasciment, nchar(dt_nasciment) - 3, nchar(dt_nasciment))), na.rm = TRUE),
    instr_1 = sum(gr_instrucao == 1, na.rm = TRUE),
    instr_2 = sum(gr_instrucao == 2, na.rm = TRUE),
    instr_3 = sum(gr_instrucao == 3, na.rm = TRUE),
    instr_4 = sum(gr_instrucao == 4, na.rm = TRUE),
    instr_5 = sum(gr_instrucao == 5, na.rm = TRUE),
    instr_6 = sum(gr_instrucao == 6, na.rm = TRUE),
    instr_7 = sum(gr_instrucao == 7, na.rm = TRUE),
    instr_8 = sum(gr_instrucao == 8, na.rm = TRUE),
    instr_9 = sum(gr_instrucao == 9, na.rm = TRUE),
    instr_10 = sum(gr_instrucao == 10, na.rm = TRUE),
    instr_11 = sum(gr_instrucao == 11, na.rm = TRUE)
  )

merge_V2009$ano<-2009

save(merge_V2009, file="merge_V2009.Rda")

Vinculos de 2010

# Carregar os dados de 2010
load("V2010.Rda")
# Padronizar os nomes das colunas
V2010 <- V2010 %>% clean_names()


  variaveis_necessarias <- c(
  "identificad", "emp_em_31_12", "genero", "rem_med_r", "temp_empr", 
  "dt_nasciment", "gr_instrucao"
)

# Checar se todas as variáveis necessárias estão presentes
if (!all(variaveis_necessarias %in% names(V2010))) {
  variaveis_faltantes <- variaveis_necessarias[!variaveis_necessarias %in% names(V2010)]
  stop(paste("As seguintes variáveis não foram encontradas na base:", paste(variaveis_faltantes, collapse = ", ")))
}


# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2010 <- V2010 %>%
  rename(cnpj = identificad) %>%
  filter(emp_em_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2010 <- V2010 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(genero == "MASCULINO", na.rm = TRUE),
    mulheres = sum(genero == "FEMININO", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", rem_med_r)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", temp_empr)), na.rm = TRUE),
    idade = mean(2010 - as.numeric(substr(dt_nasciment, nchar(dt_nasciment) - 3, nchar(dt_nasciment))), na.rm = TRUE),
    instr_1 = sum(gr_instrucao == 1, na.rm = TRUE),
    instr_2 = sum(gr_instrucao == 2, na.rm = TRUE),
    instr_3 = sum(gr_instrucao == 3, na.rm = TRUE),
    instr_4 = sum(gr_instrucao == 4, na.rm = TRUE),
    instr_5 = sum(gr_instrucao == 5, na.rm = TRUE),
    instr_6 = sum(gr_instrucao == 6, na.rm = TRUE),
    instr_7 = sum(gr_instrucao == 7, na.rm = TRUE),
    instr_8 = sum(gr_instrucao == 8, na.rm = TRUE),
    instr_9 = sum(gr_instrucao == 9, na.rm = TRUE),
    instr_10 = sum(gr_instrucao == 10, na.rm = TRUE),
    instr_11 = sum(gr_instrucao == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2010$ano <- 2010

# Salvar o dataframe em um arquivo .Rda
save(merge_V2010, file="merge_V2010.Rda")

Vinculos de 2011

# Carregar os dados de 2011
load("V2011.Rda")

# Padronizar os nomes das colunas
V2011 <- V2011 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2011 <- V2011 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2011 <- V2011 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2011$ano <- 2011

# Salvar o dataframe em um arquivo .Rda
save(merge_V2011, file="merge_V2011.Rda")

Vinculos de 2012

# Carregar os dados de 2012
load("V2012.Rda")

# Padronizar os nomes das colunas
V2012 <- V2012 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2012 <- V2012 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2012 <- V2012 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2012$ano <- 2012

# Salvar o dataframe em um arquivo .Rda
save(merge_V2012, file="merge_V2012.Rda")

Vinculos de 2013

# Carregar os dados de 2013
load("V2013.Rda")

# Padronizar os nomes das colunas
V2013 <- V2013 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2013 <- V2013 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2013 <- V2013 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2013$ano <- 2013

# Salvar o dataframe em um arquivo .Rda
save(merge_V2013, file="merge_V2013.Rda")

Vinculos de 2014

# Carregar os dados de 2014
load("V2014.Rda")

# Padronizar os nomes das colunas
V2014 <- V2014 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2014 <- V2014 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2014 <- V2014 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2014$ano <- 2014

# Salvar o dataframe em um arquivo .Rda
save(merge_V2014, file="merge_V2014.Rda")

Vinculos de 2015

# Carregar os dados de 2015
load("V2015.Rda")

# Padronizar os nomes das colunas
V2015 <- V2015 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2015 <- V2015 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2015 <- V2015 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2015$ano <- 2015

# Salvar o dataframe em um arquivo .Rda
save(merge_V2015, file="merge_V2015.Rda")

Vinculos de 2016

# Carregar os dados de 2016
load("V2016.Rda")

# Padronizar os nomes das colunas
V2016 <- V2016 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2016 <- V2016 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2016 <- V2016 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2016$ano <- 2016

# Salvar o dataframe em um arquivo .Rda
save(merge_V2016, file="merge_V2016.Rda")

Vinculos de 2017

# Carregar os dados de 2017
load("V2017.Rda")

# Padronizar os nomes das colunas
V2017 <- V2017 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2017 <- V2017 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2017 <- V2017 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2017$ano <- 2017

# Salvar o dataframe em um arquivo .Rda
save(merge_V2017, file="merge_V2017.Rda")

Vinculos de 2018

# Carregar os dados de 2018
load("V2018.Rda")

# Padronizar os nomes das colunas
V2018 <- V2018 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2018 <- V2018 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2018 <- V2018 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2018$ano <- 2018

# Salvar o dataframe em um arquivo .Rda
save(merge_V2018, file="merge_V2018.Rda")

Vinculos de 2019

# Carregar os dados de 2019
load("V2019.Rda")

# Padronizar os nomes das colunas
V2019 <- V2019 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2019 <- V2019 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2019 <- V2019 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2019$ano <- 2019

# Salvar o dataframe em um arquivo .Rda
save(merge_V2019, file="merge_V2019.Rda")

Vinculos de 2020

# Carregar os dados de 2020
load("V2020.Rda")

# Padronizar os nomes das colunas
V2020 <- V2020 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2020 <- V2020 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2020 <- V2020 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2020$ano <- 2020

# Salvar o dataframe em um arquivo .Rda
save(merge_V2020, file="merge_V2020.Rda")

Vinculos de 2021

# Carregar os dados de 2021
load("V2021.Rda")

# Padronizar os nomes das colunas
V2021 <- V2021 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2021 <- V2021 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2021 <- V2021 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2021$ano <- 2021

# Salvar o dataframe em um arquivo .Rda
save(merge_V2021, file="merge_V2021.Rda")

Vinculos de 2022

# Carregar os dados de 2022
load("V2022.Rda")

# Padronizar os nomes das colunas
V2022 <- V2022 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2022 <- V2022 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2022 <- V2022 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2022$ano <- 2022

# Salvar o dataframe em um arquivo .Rda
save(merge_V2022, file="merge_V2022.Rda")

Vinculos de 2023

# Carregar os dados de 2023
load("V2023.Rda")

# Padronizar os nomes das colunas
V2023 <- V2023 %>% clean_names()

# Renomear a coluna de identificação e filtrar empregados ativos em 31/12
V2023 <- V2023 %>%
  rename(cnpj = cnpj_cei) %>%
  filter(vinculo_ativo_31_12 == 1)

# Agrupar por CNPJ e calcular as métricas
merge_V2023 <- V2023 %>%
  group_by(cnpj) %>%
  summarise(
    homens = sum(sexo_trabalhador == "01", na.rm = TRUE),
    mulheres = sum(sexo_trabalhador == "02", na.rm = TRUE),
    renda_media_real = mean(as.numeric(gsub(",", ".", vl_remun_media_nom)), na.rm = TRUE),
    tempo_empregado = mean(as.numeric(gsub(",", ".", tempo_emprego)), na.rm = TRUE),
    idade = mean(as.numeric(idade), na.rm = TRUE),
    instr_1 = sum(escolaridade_apos_2005 == 1, na.rm = TRUE),
    instr_2 = sum(escolaridade_apos_2005 == 2, na.rm = TRUE),
    instr_3 = sum(escolaridade_apos_2005 == 3, na.rm = TRUE),
    instr_4 = sum(escolaridade_apos_2005 == 4, na.rm = TRUE),
    instr_5 = sum(escolaridade_apos_2005 == 5, na.rm = TRUE),
    instr_6 = sum(escolaridade_apos_2005 == 6, na.rm = TRUE),
    instr_7 = sum(escolaridade_apos_2005 == 7, na.rm = TRUE),
    instr_8 = sum(escolaridade_apos_2005 == 8, na.rm = TRUE),
    instr_9 = sum(escolaridade_apos_2005 == 9, na.rm = TRUE),
    instr_10 = sum(escolaridade_apos_2005 == 10, na.rm = TRUE),
    instr_11 = sum(escolaridade_apos_2005 == 11, na.rm = TRUE)
  )

# Adicionar uma coluna indicando o ano
merge_V2023$ano <- 2023

# Salvar o dataframe em um arquivo .Rda
save(merge_V2023, file="merge_V2023.Rda")

Fazendo a junção dos vários “merge_ano”

anos <- 2009:2023
lista_bases <- list()
for (ano in anos) {
  arquivo <- paste0("merge_V", ano, ".Rda")
  load(arquivo)
  lista_bases[[as.character(ano)]] <- get(paste0("merge_V", ano))
}
merge_all <- bind_rows(lista_bases)
save(merge_all, file="merge_all.Rda")
nrow(merge_all)
#[1] 19333270

Fazendo o merge das três partes

load("merge_all.Rda")
load("rais_sudene.Rda")

rais_sudene2 <- merge(rais_sudene, merge_all, by=c("ano", "cnpj"), all=TRUE)

save(rais_sudene2, file="rais_sudene2.Rda")

nrow(rais_sudene2)
#52755049

nrow(rais_sudene)
#[1] 48364904

Empresas beneficiadas

Aqui nós vamos carregar a base de dados "rais_sudene2.Rda" e incluir as empresas beneficiadas na análise. No arquivo há empresas de outros setores que não só o de Alimentos e Bebidas. Isso é feito tanto porque é possível que a equipe use outros setores na análise, e porque é possível pensar em expandir a análise para outros setores no futuro.

Carregando os dados das empresas beneficiadas:

beneficiadas <- read_excel("empresas_beneficiadas.xlsx")

colnames(beneficiadas) <- tolower(colnames(beneficiadas))

beneficiadas <- beneficiadas %>% clean_names()

beneficiadas <- beneficiadas %>% select(c(
  "dt_protocolo", "dt_processo", "incentivo", "tipo_projeto", "setor_economico", 
  "cnpj", "cod_ibge", "uf", "prazo_do_beneficio", "total_investimentos", 
  "total_reducao_por_reinvestimento", "empregos_diretos", "empregos_indiretos", "enquadramento"
))


beneficiadas$cnpj<-as.character(beneficiadas$cnpj)

nrow(beneficiadas)

intermediaria1 <- beneficiadas %>%
  filter(str_detect(setor_economico, "aliment"))
nrow(intermediaria1)

intermediaria2 <- intermediaria1 %>%
  filter(!str_detect(setor_economico, "agric"))
nrow(intermediaria2)

beneficiadas2 <- intermediaria2 %>% 
  filter(total_investimentos > 0) %>% 
     filter(uf != "SP")%>% 
     filter(uf != "RJ")
nrow(beneficiadas2)
# 5109
# 1136
# 1009
# 834

beneficiadas2$beneficiadas<-"sim"
library(lubridate)

beneficiadas2$ano_protocolo<-year(beneficiadas2$dt_protocolo)

beneficiadas2 <- beneficiadas2 %>%
  mutate(repetidas = ifelse(duplicated(cnpj) | duplicated(cnpj, fromLast = TRUE), 1, 0))
library(writexl)
beneficiadas3 <- beneficiadas2[!duplicated(beneficiadas2$cnpj), ]

write_xlsx(beneficiadas3, "beneficiadas3.xlsx")

nrow(beneficiadas3)
load("rais_sudene2.Rda")
rais_sudene3 <- rais_sudene2 %>%
  left_join(beneficiadas3 %>% select(cnpj, prazo_do_beneficio, total_investimentos, tipo_projeto, total_reducao_por_reinvestimento, beneficiadas, empregos_diretos, empregos_indiretos, ano_protocolo), by = "cnpj")%>%
  filter(ano>2008)

save(rais_sudene3, file="rais_sudene3.Rda")

Finalmente chegamos à "rais_sudene3.Rda"!

Quantas empresas beneficiadas conseguimos seguir?

#load("rais_sudene3.Rda")
rais_sudene3$beneficiadas <- ifelse(is.na(rais_sudene3$beneficiadas), "nao", rais_sudene3$beneficiadas)

table(rais_sudene3$beneficiadas)

tabela_beneficiadas_2015 <- rais_sudene3 %>%
  filter(ano == 2015) %>%
  pull(beneficiadas) %>%
  table()

# Exibir a tabela
print(tabela_beneficiadas_2015)

# Passo 1: Contar o número de observações onde beneficiadas == "sim" por ano
dados_grafico <- rais_sudene3 %>%
  filter(beneficiadas == "sim") %>%  # Filtrar apenas beneficiadas == "sim"
  group_by(ano) %>%                  # Agrupar por ano
  summarise(quantidade = n())    

save(dados_grafico, file="dados_grafico.Rda")

No ano de 2015 há 721 empresas na base final. Ou seja, é possível acompanhar esta quantidade de emrpesas.

Melhor mesmo é olhar quantas empresas em cada ano a gente consegue seguir.

load("dados_grafico.Rda")

g10 <- ggplot(dados_grafico, aes(x = ano, y = quantidade)) +
  geom_line(color = "darkred", size = 1) +  # Linha em darkred
  geom_point(color = "darkred", size = 3) + # Pontos em darkred
  scale_y_continuous(
    limits = range(dados_grafico$quantidade), 
    breaks = unique(c(
      min(dados_grafico$quantidade), 
      max(dados_grafico$quantidade), 
      seq(300, 700, length.out = 3) # Sequência fixa entre 200 e 800
    ))
  ) +
  labs(
    title = "",
    x = "",
    y = "Beneficiadas identificadas na RAIS em cada ano"
  ) +
  theme_minimal()  # Usar um tema minimalista
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggsave(file = "g10.png", plot = g10, width = 6.472, height = 4)

g10

Características das bases

# Carregar bibliotecas necessárias
library(dplyr)
load("merge_all.Rda")
# Criar a tabela resumida

tabela_resumo <- data.frame(
  Nome_Variavel = names(merge_all), # Nome das variáveis
  Numero_Observacoes = nrow(merge_all), # Número de observações (linhas)
  Formato = sapply(merge_all, class) # Formato (tipo) de cada variável
)

# Exibir a tabela
print(tabela_resumo)
tabela_resumo <- data.frame(
  Nome_Variavel = names(rais_sudene),  # Nome das variáveis
  Numero_Observacoes = rep(nrow(rais_sudene), length(names(rais_sudene))),  # Número de observações
  Formato = sapply(rais_sudene, class)  # Tipo de cada variável
)

# Exibir a tabela
print(tabela_resumo)
tabela_resumo <- data.frame(
  Nome_Variavel = names(beneficiadas2),  
  Observacoes = nrow(beneficiadas2),  
  Classe = sapply(beneficiadas2, function(x) class(x)[1])  # Pegar apenas a primeira classe
)

# Exibir a tabela no console
print(tabela_resumo, row.names = FALSE)

DADOS SOCIECONOMICOS - CIDADE-ANO

ds <- read_excel("sudene_dados_socioeconomicos.xls")
# Criar a tabela contabilizando apenas valores não NA
tabela_resumo <- data.frame(
  Nome_Variavel = names(ds),  # Nome das variáveis
  Numero_Observacoes = colSums(!is.na(ds)),  # Contar apenas valores não NA
  Formato = sapply(ds, class)  # Tipo de cada variável
)

# Exibir a tabela
print(tabela_resumo)
##                                               Nome_Variavel Numero_Observacoes
## id_municipio                                   id_municipio              29036
## ano                                                     ano              29036
## pib_pc                                               pib_pc              26962
## vab_serv                                           vab_serv              26962
## vab_ind                                             vab_ind              26962
## vab_agro                                           vab_agro              26962
## emprego_pc                                       emprego_pc              29036
## obt_ext                                             obt_ext              29036
## obt_mat                                             obt_mat              29036
## obt_inf                                             obt_inf              29036
## tdi                                                     tdi              28953
## dens_pop                                           dens_pop              29036
## indice_atendimento_total_agua indice_atendimento_total_agua              26506
## desp_orcam_pg                                 desp_orcam_pg              28211
## num_agencias                                   num_agencias              14094
## reg_met                                             reg_met              29036
## semiarido                                         semiarido              29036
## id_uf                                                 id_uf              29036
##                               Formato
## id_municipio                  numeric
## ano                           numeric
## pib_pc                        numeric
## vab_serv                      numeric
## vab_ind                       numeric
## vab_agro                      numeric
## emprego_pc                    numeric
## obt_ext                       numeric
## obt_mat                       numeric
## obt_inf                       numeric
## tdi                           numeric
## dens_pop                      numeric
## indice_atendimento_total_agua numeric
## desp_orcam_pg                 numeric
## num_agencias                  numeric
## reg_met                       numeric
## semiarido                     numeric
## id_uf                         numeric
Nome_Variavel Descricao
id_municipio Geocódigo IBGE
ano Ano
pib_pc PIB per capita
vab_serv Valor adicionado bruto - Serviços
vab_ind Valor adicionado bruto - Indústria
vab_agro Valor adicionado bruto - Agropecuária
emprego_pc Número de empregos formais dividido por habitante
obt_ext Óbitos por causas externas
obt_mat Óbitos maternos
obt_inf Óbitos infantis
tdi Taxa de distorção idade-série (Ensino Médio)
dens_pop Densidade populacional
indice_atendimento_total_agua Percentual da população atendida com abastecimento de água
desp_orcam_pg Despesas orçamentárias pagas
num_agencias Número de agências bancárias
reg_met Região metropolitana (sim = 1)
semiarido Semiárido (sim = 1)
id_uf Unidade da Federação

  1. Foi usado um notebook com 32GB de RAM, mas é possível fazer a leitura dessas bases com menos capacidade computacional.↩︎