# =========== Pacotes ============
library(readr)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ purrr     1.1.0
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(tidyr)
library(ggplot2)
library(knitr)
library(kableExtra)
## 
## Anexando pacote: 'kableExtra'
## 
## O seguinte objeto é mascarado por 'package:dplyr':
## 
##     group_rows
library(scales)
## 
## Anexando pacote: 'scales'
## 
## O seguinte objeto é mascarado por 'package:purrr':
## 
##     discard
## 
## O seguinte objeto é mascarado por 'package:readr':
## 
##     col_factor

Lendo a base de dados

# =========== Empregos por seção CNAE ============
dados_secao <- read_csv2("C:/Users/Katharine Rodrigues/Documents/CNI/emprego_secao_anos_(1).csv", locale = locale(encoding = "LATIN1"), skip = 1, n_max = 536, show_col_types = FALSE)
## ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
# =========== Empregos por divisão CNAE ============
dados_divisao <- read_csv2("C:/Users/Katharine Rodrigues/Documents/CNI/emprego_divisao_(1).csv", locale = locale(encoding = "LATIN1"), skip = 1, n_max = 29, show_col_types = FALSE)
## ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.

Evolução do emprego por seção CNAE

# =========== Organizando a tabela ============
dados_brasil_longo <- dados_secao %>% 
# filtro
filter(UF == "Total") %>%
  
# transformando em linhas
pivot_longer( cols = 3:ncol(.), names_to = "Secao_CNAE", values_to = "Numero_Empregos")
# =========== Variação ============
#ano -> para ser lido numericamente 
dados_brasil_longo$Ano <- as.numeric(dados_brasil_longo$Ano)
## Warning: NAs introduzidos por coerção
#variação do emprego entre 2006 e 2023
variacao_emprego <- dados_brasil_longo %>%
#Filtro
filter(Ano == 2006 | Ano == 2023) %>%
#colunas separadas para os valores de 2006 e 2023
  pivot_wider(names_from = Ano, values_from = Numero_Empregos ) %>%
  
#variação absoluta (nº de vagas) e percentual
  mutate( Variacao_Absoluta = `2023` - `2006`,
          Variacao_Percentual = (`2023` / `2006` - 1) * 100 ) %>%
arrange(desc(Variacao_Absoluta))
View(variacao_emprego)

Gráfico de crescimento

# =========== Crescimento ============
crescimento <- variacao_emprego %>%
  filter(!Secao_CNAE %in% c("Total", "IGNORADO")) %>%
  slice_max(order_by = Variacao_Absoluta, n = 5)

#ggplot
grafico_crescimento<-ggplot(crescimento, aes(x = Variacao_Absoluta, y = fct_reorder(Secao_CNAE, Variacao_Absoluta))) +
  geom_col(fill = "steelblue", width = 0.6) +
  geom_text(aes(label = scales::number(Variacao_Absoluta, big.mark = ".", decimal.mark = ",")), 
            hjust = -0.1, 
            size = 3) +
  scale_x_continuous(labels = label_number(big.mark = ".", decimal.mark = ","), limits = c(0, 4500000)) +
  scale_y_discrete(labels = function(x) str_wrap(x, width = 40)) +
  labs(
    title = "Seções com Maior Crescimento de Vagas (2006-2023)",
    x = "Total de Novas Vagas",
    y = ""
  ) +
  theme_minimal()
print(grafico_crescimento)

Gráfico de queda

# =========== Queda ============
queda <- variacao_emprego %>%
#filtro < 0
filter(Variacao_Absoluta < 0 & !Secao_CNAE %in% c("ADMINISTRAÇÃO PÚBLICA, DEFESA E SEGURIDADE SOCIAL"))
#ggplot
ggplot(queda, aes(x = Variacao_Absoluta, y = fct_reorder(Secao_CNAE, Variacao_Absoluta, .desc = FALSE))) +
  geom_col(fill = "#d9534f", width = 0.4) +
  geom_text(aes(label = scales::number(Variacao_Absoluta, big.mark = ".", decimal.mark = ",")), 
            hjust = 1.1, 
            size = 3.5, 
            color = "white") +
  scale_x_continuous(labels = label_number(big.mark = ".", decimal.mark = ",")) +
  scale_y_discrete(labels = function(x) str_wrap(x, width = 40)) +
  labs(
    title = "Seções com Queda de Vagas (2006-2023)",
    x = "Total de Vagas Perdidas",
    y = ""
  ) +
  theme_minimal()

queda_com_adm <- variacao_emprego %>%
  filter(Variacao_Absoluta < 0)
ggplot(queda_com_adm, aes(x = Variacao_Absoluta, y = fct_reorder(Secao_CNAE, Variacao_Absoluta, .desc = FALSE))) +
  geom_col(fill = "#d9534f", width = 0.4) +
  geom_text(aes(label = scales::number(Variacao_Absoluta, big.mark = ".", decimal.mark = ",")), 
            hjust = 1.1, 
            size = 3.5, 
            color = "white") +
  scale_x_continuous(labels = label_number(big.mark = ".", decimal.mark = ",")) +
  scale_y_discrete(labels = function(x) str_wrap(x, width = 40)) +
  labs(
    title = "Seções com Queda de Vagas (2006-2023)",
    # Adicionamos um subtítulo para deixar claro que o dado está incluído
    subtitle = "Incluindo o dado anômalo de Administração Pública",
    x = "Total de Vagas",
    y = "Seção CNAE" # Adicionei um título para o eixo y
  ) +
  theme_minimal() # Adicionei um tema para melhorar a aparência

Comparação entre Estados

# =========== Organizando a tabela ============
#dados por divisão e por estado
dados_divisao_longo <- dados_divisao %>%
#total nacional
filter(UF != "Total") %>%
#col -> row
  pivot_longer(cols = 2:(ncol(.)-1),
               names_to = "Divisao_CNAE", 
               values_to = "Numero_Empregos" )

# Código cnae
dados_divisao_longo <- dados_divisao_longo %>%
  separate(Divisao_CNAE, into = c("Codigo_Divisao", "Nome_Divisao"), sep = ":", extra = "merge")

# tabela
dados_selecionados <- dados_divisao_longo %>%
# coluna numérica
mutate(Codigo_Divisao = as.numeric(Codigo_Divisao)) %>%

# Filtro códigos das divisões
  filter((Codigo_Divisao >= 10 & Codigo_Divisao <= 33) |
           (Codigo_Divisao >= 45 & Codigo_Divisao <= 47)) %>%
  
# principais setores
  mutate(Secao = case_when(
    Codigo_Divisao <= 33 ~ "Indústria de Transformação",
    Codigo_Divisao >= 45 ~ "Comércio e Reparação"))

Ranking Indústria

ranking_industria <- dados_selecionados %>%
filter(Secao == "Indústria de Transformação") %>%
group_by(UF) %>%
summarise(Total_Empregos_Industria = sum(Numero_Empregos)) %>%

arrange(desc(Total_Empregos_Industria))
print(ranking_industria, n = 27)
## # A tibble: 28 × 2
##    UF                          Total_Empregos_Industria
##    <chr>                                          <dbl>
##  1 35:35 - São Paulo                            2465918
##  2 31:31 - Minas Gerais                          865098
##  3 42:42 - Santa Catarina                        737869
##  4 41:41 - Paraná                                723997
##  5 43:43 - Rio Grande do Sul                     686821
##  6 33:33 - Rio de Janeiro                        344055
##  7 52:52 - Goiás                                 267531
##  8 23:23 - Ceará                                 253528
##  9 29:29 - Bahia                                 248072
## 10 26:26 - Pernambuco                            222428
## 11 32:32 - Espírito Santo                        130332
## 12 51:51 - Mato Grosso                           126065
## 13 13:13 - Amazonas                              116819
## 14 50:50 - Mato Grosso do Sul                    109489
## 15 15:15 - Pará                                  103251
## 16 25:25 - Paraíba                                74865
## 17 27:27 - Alagoas                                71709
## 18 24:24 - Rio Grande do Norte                    60682
## 19 28:28 - Sergipe                                42806
## 20 21:21 - Maranhão                               42290
## 21 11:11 - Rondônia                               39126
## 22 53:53 - Distrito Federal                       35724
## 23 22:22 - Piauí                                  30526
## 24 17:17 - Tocantins                              18865
## 25 12:12 - Acre                                    7042
## 26 16:16 - Amapá                                   3848
## 27 14:14 - Roraima                                 3458
## # ℹ 1 more row

Tabela Indústria

#Tabela ranking 5
top5_industria_academico <- ranking_industria %>%
  slice_max(order_by = Total_Empregos_Industria, n = 5)
top5_industria_academico %>%
  kbl(
    caption = "Tabela 1: Total de empregos na Indústria de Transformação nos cinco principais estados do Brasil (2023).",
    col.names = c("Estado", "Nº de Empregos"),
    align = "lr",
    format.args = list(big.mark = "."),
    booktabs = TRUE 
  ) %>%
  kable_classic(
    full_width = FALSE,
    html_font = "Times New Roman"
  ) %>%
  footnote(
    general = "Elaboração própria com base nos dados da Relação Anual de Informações Sociais (RAIS).",
    general_title = "Fonte:",
    footnote_as_chunk = TRUE,
    fixed_small_size = TRUE
  )
## Warning in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
## 'big.mark' e 'decimal.mark' são ambos '.', o que pode ser confuso
Tabela 1: Total de empregos na Indústria de Transformação nos cinco principais estados do Brasil (2023).
Estado Nº de Empregos
35:35 - São Paulo 2.465.918
31:31 - Minas Gerais 865.098
42:42 - Santa Catarina 737.869
41:41 - Paraná 723.997
43:43 - Rio Grande do Sul 686.821
Fonte: Elaboração própria com base nos dados da Relação Anual de Informações Sociais (RAIS).

Comercio Ranking

ranking_comercio <- dados_selecionados %>%
  filter(Secao == "Comércio e Reparação") %>%
  group_by(UF) %>%
  summarise(Total_Empregos_Comercio = sum(Numero_Empregos)) %>%
  arrange(desc(Total_Empregos_Comercio))
print(ranking_comercio, n = 27)
## # A tibble: 28 × 2
##    UF                          Total_Empregos_Comercio
##    <chr>                                         <dbl>
##  1 35:35 - São Paulo                           2911740
##  2 31:31 - Minas Gerais                        1059593
##  3 33:33 - Rio de Janeiro                       814409
##  4 41:41 - Paraná                               727200
##  5 43:43 - Rio Grande do Sul                    648597
##  6 42:42 - Santa Catarina                       524759
##  7 29:29 - Bahia                                486538
##  8 52:52 - Goiás                                340418
##  9 26:26 - Pernambuco                           332751
## 10 23:23 - Ceará                                280034
## 11 15:15 - Pará                                 250901
## 12 51:51 - Mato Grosso                          247001
## 13 32:32 - Espírito Santo                       227458
## 14 53:53 - Distrito Federal                     183360
## 15 21:21 - Maranhão                             181821
## 16 50:50 - Mato Grosso do Sul                   151645
## 17 24:24 - Rio Grande do Norte                  129205
## 18 25:25 - Paraíba                              124517
## 19 13:13 - Amazonas                             119858
## 20 22:22 - Piauí                                105060
## 21 27:27 - Alagoas                              101449
## 22 11:11 - Rondônia                              95789
## 23 28:28 - Sergipe                               76121
## 24 17:17 - Tocantins                             62886
## 25 12:12 - Acre                                  30698
## 26 16:16 - Amapá                                 29481
## 27 14:14 - Roraima                               25864
## # ℹ 1 more row

Comercio tabela

top5_comercio <- ranking_comercio %>%
  slice_max(order_by = Total_Empregos_Comercio, n = 5)
top5_comercio %>%
  kbl(
    caption = "Tabela 2: Total de empregos no Comércio e Reparação nos cinco principais estados do Brasil (2023).",
    col.names = c("Estado", "Nº de Empregos"),
    align = "lr",
    format.args = list(big.mark = "."),
    booktabs = TRUE
  ) %>%
  kable_classic(
    full_width = FALSE,
    html_font = "Times New Roman"
  ) %>%
  footnote(
    general = "Elaboração própria com base nos dados da Relação Anual de Informações Sociais (RAIS).",
    general_title = "Fonte:",
    footnote_as_chunk = TRUE,
    fixed_small_size = TRUE
  )
## Warning in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
## 'big.mark' e 'decimal.mark' são ambos '.', o que pode ser confuso
Tabela 2: Total de empregos no Comércio e Reparação nos cinco principais estados do Brasil (2023).
Estado Nº de Empregos
35:35 - São Paulo 2.911.740
31:31 - Minas Gerais 1.059.593
33:33 - Rio de Janeiro 814.409
41:41 - Paraná 727.200
43:43 - Rio Grande do Sul 648.597
Fonte: Elaboração própria com base nos dados da Relação Anual de Informações Sociais (RAIS).