Untitled

Quarto

Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org.

Running Code

When you click the Render button a document will be generated that includes both content and the output of embedded code. You can embed code like this:

library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.3.3
library(tidyverse)
Warning: package 'tidyverse' was built under R version 4.3.3
Warning: package 'tidyr' was built under R version 4.3.3
Warning: package 'readr' was built under R version 4.3.3
Warning: package 'dplyr' was built under R version 4.3.3
Warning: package 'stringr' was built under R version 4.3.3
Warning: package 'lubridate' was built under R version 4.3.3
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ lubridate 1.9.3     ✔ tibble    3.2.1
✔ purrr     1.0.2     ✔ 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(readxl)
Warning: package 'readxl' was built under R version 4.3.3
library(janitor)
Warning: package 'janitor' was built under R version 4.3.3

Attaching package: 'janitor'

The following objects are masked from 'package:stats':

    chisq.test, fisher.test
library(openxlsx)
Warning: package 'openxlsx' was built under R version 4.3.3
mapa <- read_excel("mapa empresas 2020-2023 atualizado.xlsx", skip = 1 ) |> clean_names()

##
### EMPRESAS ABERTAS POR MESORREGIÃO
##
#FILTROS PARA DADOS 

ano <- 2023
situacao <- "Ativa"


mapa |> filter(ano_de_abertura == ano & tipo_situacao == situacao) -> dados_filtrados





# Criando uma tabela de frequência da variável Natureza Jurídica
dados_mesorregião <- dados_filtrados |>  group_by(mesorregiao) |> summarise(total_empresas = sum(quantidade_de_empresas))

# Calcular as porcentagens
dados_mesorregião$porcentagem <- round(dados_mesorregião$total_empresas / sum(dados_mesorregião$total_empresas) * 100, 1)


# Criar o gráfico de setor
ggplot(dados_mesorregião, aes(x = "", y = total_empresas, fill = mesorregiao)) +
  geom_bar(stat = "identity", width = 1, color = "white") +
  coord_polar("y", start = 0) +
  labs(title = paste(ano,"Paraíba: Abertura de empresas por Mesorregião,"), fill = "Mesorregião") +
  theme_minimal() +
  theme(axis.text.x = element_blank(),
        axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        plot.title = element_text(hjust = 0.5, size = 16, face = "bold")) +
  geom_text(aes(label = paste0(porcentagem, "%")), 
            position = position_stack(vjust = 0.5), size = 5, color = "black") +
  scale_fill_brewer(palette = "Set3")

print(dados_mesorregião)
# A tibble: 4 × 3
  mesorregiao       total_empresas porcentagem
  <chr>                      <dbl>       <dbl>
1 Agreste Paraibano           9000        22.9
2 Borborema                    311         0.8
3 Sertão Paraibano           10234        26.1
4 Zona da Mata               19676        50.2
##
### EMPRESAS ABERTAS POR NATURAZA JURÍDICA
##

mapa |> filter(ano_de_abertura == ano & tipo_situacao == situacao) -> dados_filtrados2


# Criando uma tabela de frequência da variável Natureza Jurídica
dados_natu <- dados_filtrados2 |>  group_by(natureza_juridica) |> summarise(total_empresas = sum(quantidade_de_empresas))

# Calcular as porcentagens
dados_natu$porcentagem <- round(dados_natu$total_empresas / sum(dados_natu$total_empresas) * 100, 1)



# Filtrar os 5 maiores valores
top_5_dados_natu <- dados_natu |> 
  top_n(5, wt = total_empresas) |> 
  arrange(desc(total_empresas))

# Criar o gráfico de colunas com os 5 maiores
ggplot(top_5_dados_natu, aes(x = reorder(natureza_juridica, -total_empresas), y = total_empresas, fill = natureza_juridica)) +
  geom_col(color = "white") +
  labs(title = paste(ano, "- Paraíba: 5 Empresas Abertas por Natureza Jurídica"),
       x = "Natureza Jurídica",
       y = "Total de Empresas",
       fill = "Natureza Jurídica") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),  # Ajusta o ângulo e o alinhamento dos rótulos do eixo x
        plot.title = element_text(hjust = 0,3, size = 16, face = "bold"),  # Centraliza o título
        plot.margin = margin(10, 10, 10, 10)) +  # Adiciona margens para evitar corte do título
  geom_text(aes(label = paste0(porcentagem, "%")),
            position = position_stack(vjust = 0.5), size = 5, color = "black") +
  scale_fill_brewer(palette = "Set3")
Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family
not found in Windows font database
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
family not found in Windows font database
Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
font family not found in Windows font database

print(top_5_dados_natu)
# A tibble: 5 × 3
  natureza_juridica                  total_empresas porcentagem
  <chr>                                       <dbl>       <dbl>
1 Empresário Individual                       31309        79.8
2 Sociedade Limitada                           7664        19.5
3 Sociedade Anônima Fechada                      97         0.2
4 Sociedade em Conta de Participação             62         0.2
5 Cooperativa                                    29         0.1
###
### CRIANDO GRÁFICO EMPRESÁRIO INDIVIDUAL POR MESORREGIÃO
###

mapa |> filter(ano_de_abertura < ano+1 & tipo_situacao == situacao & natureza_juridica == "Empresário Individual" ) -> dados_filtrados3




# Criando uma tabela de frequência da variável Natureza Jurídica
dados_emp_ind <- dados_filtrados3 |>  group_by(mesorregiao) |> summarise(total_empresas = sum(quantidade_de_empresas))

# Calcular as porcentagens
dados_emp_ind$porcentagem <- round(dados_emp_ind$total_empresas / sum(dados_emp_ind$total_empresas) * 100, 1)


# Criar o gráfico de barras
ggplot(dados_emp_ind, aes(x = mesorregiao, y = total_empresas, fill = mesorregiao)) +
  geom_bar(stat = "identity", color = "white") +
  labs(title = paste(ano, "Paraíba: Empresários individuais ativos por mesorregião"), 
       x = "Mesorregião", 
       y = "Total de Empresas",
       fill = "Mesorregião") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.3, size = 15, face = "bold")) +
  geom_text(aes(label = paste0(porcentagem, "%")), 
            position = position_stack(vjust = 0.5), size = 4, color = "black") +
  scale_fill_brewer(palette = "Set3")

print(dados_emp_ind)
# A tibble: 4 × 3
  mesorregiao       total_empresas porcentagem
  <chr>                      <dbl>       <dbl>
1 Agreste Paraibano          44532        23.8
2 Borborema                   1921         1  
3 Sertão Paraibano           59602        31.9
4 Zona da Mata               81049        43.3
### CRIANDO GRÁFICO SOCIEDADE ANÔNIMA ABERTA POR MESORREGIÃO



mapa |> filter(ano_de_abertura < ano+1 & tipo_situacao == situacao & natureza_juridica == "Sociedade Anônima Aberta") -> dados_filtrados4




# Criando uma tabela de frequência da variável Natureza Jurídica
dados_soc_ano_ab <- dados_filtrados4 |>  group_by(mesorregiao) |> summarise(total_empresas = sum(quantidade_de_empresas))

# Calcular as porcentagens
dados_soc_ano_ab$porcentagem <- round(dados_soc_ano_ab$total_empresas / sum(dados_soc_ano_ab$total_empresas) * 100, 1)


# Criar o gráfico de barras
ggplot(dados_soc_ano_ab, aes(x = mesorregiao, y = total_empresas, fill = mesorregiao)) +
  geom_bar(stat = "identity", color = "white") +
  labs(title = paste(ano, "Paraíba: Sociedades anônimas abertas ativas por mesorregião"), 
       x = "Mesorregião", 
       y = "Total de Empresas",
       fill = "Mesorregião") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.3, size = 15, face = "bold")) +
  geom_text(aes(label = paste0(porcentagem, "%")), 
            position = position_stack(vjust = 0.5), size = 4, color = "black") +
  scale_fill_brewer(palette = "Set3")

print(dados_soc_ano_ab)
# A tibble: 4 × 3
  mesorregiao       total_empresas porcentagem
  <chr>                      <dbl>       <dbl>
1 Agreste Paraibano            124        20.7
2 Borborema                      3         0.5
3 Sertão Paraibano             168        28.1
4 Zona da Mata                 303        50.7
### CRIANDO GRÁFICO SOCIEDADE ANÔNIMA FECHADA POR MESORREGIÃO



mapa |> filter(ano_de_abertura < ano+1 & tipo_situacao == situacao & natureza_juridica == "Sociedade Anônima Fechada") -> dados_filtrados5




# Criando uma tabela de frequência da variável Natureza Jurídica
dados_soc_ano_fx <- dados_filtrados5 |>  group_by(mesorregiao) |> summarise(total_empresas = sum(quantidade_de_empresas))

# Calcular as porcentagens
dados_soc_ano_fx$porcentagem <- round(dados_soc_ano_fx$total_empresas / sum(dados_soc_ano_fx$total_empresas) * 100, 1)


# Criar o gráfico de barras
ggplot(dados_soc_ano_fx, aes(x = mesorregiao, y = total_empresas, fill = mesorregiao)) +
  geom_bar(stat = "identity", color = "white") +
  labs(title = paste(ano, "Paraíba: Sociedades anônimas abertas ativas por mesorregião"), 
       x = "Mesorregião", 
       y = "Total de Empresas",
       fill = "Mesorregião") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.3, size = 15, face = "bold")) +
  geom_text(aes(label = paste0(porcentagem, "%")), 
            position = position_stack(vjust = 0.5), size = 4, color = "black") +
  scale_fill_brewer(palette = "Set3")

print(dados_soc_ano_fx)
# A tibble: 4 × 3
  mesorregiao       total_empresas porcentagem
  <chr>                      <dbl>       <dbl>
1 Agreste Paraibano            225        20.6
2 Borborema                      3         0.3
3 Sertão Paraibano             208        19.1
4 Zona da Mata                 655        60  
### CRIANDO GRÁFICO SOCIEDADE LIMITADA POR MESORREGIÃO



mapa |> filter(ano_de_abertura < ano+1 & tipo_situacao == situacao & natureza_juridica == "Sociedade Limitada") -> dados_filtrados6



# Criando uma tabela de frequência da variável Natureza Jurídica
dados_soc_limi<- dados_filtrados6 |>  group_by(mesorregiao) |> summarise(total_empresas = sum(quantidade_de_empresas))

# Calcular as porcentagens
dados_soc_limi$porcentagem <- round(dados_soc_limi$total_empresas / sum(dados_soc_limi$total_empresas) * 100, 1)


# Criar o gráfico de barras
ggplot(dados_soc_limi, aes(x = mesorregiao, y = total_empresas, fill = mesorregiao)) +
  geom_bar(stat = "identity", color = "white") +
  labs(title = paste(ano, "Paraíba: Sociedades limitada ativas por mesorregião"), 
       x = "Mesorregião", 
       y = "Total de Empresas",
       fill = "Mesorregião") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.3, size = 15, face = "bold")) +
  geom_text(aes(label = paste0(porcentagem, "%")), 
            position = position_stack(vjust = 0.5), size = 4, color = "black") +
  scale_fill_brewer(palette = "Set3")

print(dados_soc_limi)
# A tibble: 4 × 3
  mesorregiao       total_empresas porcentagem
  <chr>                      <dbl>       <dbl>
1 Agreste Paraibano          13677        21.7
2 Borborema                    281         0.4
3 Sertão Paraibano           14074        22.3
4 Zona da Mata               34991        55.5
### CRIANDO GRÁFICO MEI POR MESORREGIÃO



mapa |> filter(ano_de_abertura < ano+1 & tipo_situacao == situacao & opcao_mei == "MEI") -> dados_filtrados7



# Criando uma tabela de frequência da variável Natureza Jurídica
dados_mei<- dados_filtrados7 |>  group_by(mesorregiao) |> summarise(total_empresas = sum(quantidade_de_empresas))

# Calcular as porcentagens
dados_mei$porcentagem <- round(dados_mei$total_empresas / sum(dados_mei$total_empresas) * 100, 1)


# Criar o gráfico de barras
ggplot(dados_mei, aes(x = mesorregiao, y = total_empresas, fill = mesorregiao)) +
  geom_bar(stat = "identity", color = "white") +
  labs(title = paste(ano, "Paraíba: MEI ativas por mesorregião"), 
       x = "Mesorregião", 
       y = "Total de Empresas",
       fill = "Mesorregião") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.3, size = 15, face = "bold")) +
  geom_text(aes(label = paste0(porcentagem, "%")), 
            position = position_stack(vjust = 0.5), size = 4, color = "black") +
  scale_fill_brewer(palette = "Set3")

print(dados_mei)
# A tibble: 4 × 3
  mesorregiao       total_empresas porcentagem
  <chr>                      <dbl>       <dbl>
1 Agreste Paraibano          35170        23.5
2 Borborema                   1555         1  
3 Sertão Paraibano           44609        29.8
4 Zona da Mata               68237        45.6
### CRIANDO GRÁFICO MEI POR MESORREGIÃO



mapa |> filter(ano_de_abertura < ano+1 & tipo_situacao == situacao & opcao_mei == "Não-MEI") -> dados_filtrados8



# Criando uma tabela de frequência da variável Natureza Jurídica
dados_n_mei<- dados_filtrados8 |>  group_by(mesorregiao) |> summarise(total_empresas = sum(quantidade_de_empresas))

# Calcular as porcentagens
dados_n_mei$porcentagem <- round(dados_n_mei$total_empresas / sum(dados_n_mei$total_empresas) * 100, 1)


# Criar o gráfico de barras
ggplot(dados_n_mei, aes(x = mesorregiao, y = total_empresas, fill = mesorregiao)) +
  geom_bar(stat = "identity", color = "white") +
  labs(title = paste(ano, "Paraíba: Não MEI ativas por mesorregião"), 
       x = "Mesorregião", 
       y = "Total de Empresas",
       fill = "Mesorregião") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.3, size = 15, face = "bold")) +
  geom_text(aes(label = paste0(porcentagem, "%")), 
            position = position_stack(vjust = 0.5), size = 4, color = "black") +
  scale_fill_brewer(palette = "Set3")

print(dados_n_mei)
# A tibble: 4 × 3
  mesorregiao       total_empresas porcentagem
  <chr>                      <dbl>       <dbl>
1 Agreste Paraibano          23693        22.9
2 Borborema                    663         0.6
3 Sertão Paraibano           29974        28.9
4 Zona da Mata               49347        47.6

You can add options to executable code like this

The echo: false option disables the printing of code (only output is displayed).