---
title: "Incentivos à inovação em Sergipe (2010-2013)"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
source_code: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(dplyr)
library(ggplot2)
library(scales)
library(treemapify)
library(plotly)
library(tidyr)
library(knitr)
library(stringr)
library(readr)
```
```{r}
# Leitura dos dados
bd1 <- read.csv("C:/Users/igorc/Desktop/PESQUISAS/Fapitec/13_2022/04 Dashboards/01_rito_2022/bd/bd1.csv", sep = ";", fileEncoding = "UTF-8")
bd7 <- read.csv("C:/Users/igorc/Desktop/PESQUISAS/Fapitec/13_2022/04 Dashboards/01_rito_2022/bd/bd7.csv")
bd2 <- read.csv("C:/Users/igorc/Desktop/PESQUISAS/Fapitec/13_2022/04 Dashboards/01_rito_2022/bd/bd2.csv", sep = ";")
bd3 <- read.csv("C:/Users/igorc/Desktop/PESQUISAS/Fapitec/13_2022/04 Dashboards/01_rito_2022/bd/bd3.csv", sep = ";")
bd4 <- read.csv("C:/Users/igorc/Desktop/PESQUISAS/Fapitec/13_2022/04 Dashboards/01_rito_2022/bd/bd4.csv", sep = ";")
colnames(bd4)[1] <- "Dificuldades"
```
Editais
=======================================================================
Column {data-width=250}
-----------------------------------------------------------------------
### X
```{r}
valueBox(
value = 3,
icon = "fa-file-text-o",
caption = "Editais geridos pela Fapitec"
)
```
### X
```{r}
valueBox(
value = 18,
icon = "fa-handshake-o",
caption = "Projetos contratados / Empresas sergipanas beneficiadas"
)
```
Column {.tabset .tabset-fade data-width=750}
-----------------------------------------------------------------------
### Projetos por edital
```{r}
# Preparação dos dados para o gráfico
projetos_ano <- bd1 %>%
group_by(edital) %>%
summarize(Quantidade = n())
p <- ggplot(projetos_ano, aes(x = edital, y = Quantidade)) +
geom_bar(stat = "identity", fill = "skyblue") +
labs(title = "Projetos contratados por ano", x = "Ano", y = "Quantidade de Projetos") +
theme_minimal()
# Transformando o gráfico em interativo com tooltip
ggplotly(p, tooltip = c("x", "y"))
```
### Valores investidos em cada edital
```{r}
# Preparação dos dados para o gráfico
valor_ano <- bd7 %>%
group_by(ano) %>%
summarize(Valor_Contratado = sum(valor_projetos_contratados) / 1000) # Ajustando a escala para mil
# Criando o gráfico com ggplot
p <- ggplot(valor_ano, aes(x = ano, y = Valor_Contratado)) +
geom_bar(stat = "identity", fill = "lightgreen") +
labs(
title = "Valor contratado por ano",
x = "Ano",
y = "Valor Contratado (R$ Mil)" # Alterado para indicar a nova escala
) +
scale_y_continuous(
labels = function(x) {
# Formatação personalizada para o eixo Y
ifelse(
x >= 1000,
paste0(x / 1000, "k"), # Adiciona "k" para milhões
format(x, big.mark = ".", decimal.mark = ",") # Formata para mil sem "k"
)
}
) +
theme_minimal()
# Transformando o gráfico em interativo com tooltip
ggplotly(p, tooltip = c("x", "y")) %>%
layout(
yaxis = list(
title = "Valor Contratado (R$ Mil)", # Reflete a nova escala no eixo Y
tickformat = ""
)
)
```
### Investimento médio em cada edital
```{r}
# Preparação dos dados para o gráfico
# Garantindo que a coluna 'ano' é numérica e gerando um intervalo contínuo de anos
anos_completos <- seq(min(bd7$ano), max(bd7$ano)) # Intervalo contínuo de anos
investimento_medio_por_ano <- bd7 %>%
mutate(ano = as.integer(ano)) %>% # Garantir que 'ano' seja numérico
group_by(ano) %>%
summarize(Investimento_Medio = sum(valor_projetos_contratados) / sum(quantidade_projetos_contratados), .groups = "drop") %>%
complete(ano = anos_completos, fill = list(Investimento_Medio = NA)) # Preencher anos ausentes com NA
# Convertendo os valores para 'milhares'
investimento_medio_por_ano <- investimento_medio_por_ano %>%
mutate(Investimento_Medio = Investimento_Medio / 1000) # Divisão para converter para milhares
# Criação do gráfico
p <- ggplot(investimento_medio_por_ano, aes(x = ano, y = Investimento_Medio)) +
geom_bar(stat = "identity", fill = "purple", na.rm = TRUE) + # Na.rm = TRUE para ignorar os NAs
labs(
title = "Investimento Médio por Empresa por Ano",
x = "Ano",
y = "Investimento Médio (R$ Mil)" # Atualizando a unidade no rótulo do eixo Y
) +
scale_y_continuous(
labels = function(x) {
# Formatação personalizada para o eixo Y
ifelse(
x >= 1000,
paste0(x / 1000, "k"), # Adiciona "k" para milhões
format(x, big.mark = ".", decimal.mark = ",") # Formata para mil sem "k"
)
}
) +
scale_x_continuous(breaks = anos_completos) + # Garantir que todos os anos aparecem no eixo X
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Transformando o gráfico em interativo com tooltip
ggplotly(p, tooltip = c("x", "y")) %>%
layout(
yaxis = list(
title = "Investimento Médio (R$ Mil)", # Atualizado para refletir a nova escala
tickformat = "" # Removendo formatação automática
)
)
```
Empresas
=======================================================================
Column {data-width=250}
-----------------------------------------------------------------------
### X
```{r}
valueBox(
value = 18,
icon = "fa-industry",
caption = "Total de empresas sergipanas beneficiadas"
)
```
### X
```{r}
valueBox(
value = 6,
icon = "fa-industry",
caption = "Empresas de Pequeno Porte"
)
```
### X
```{r}
valueBox(
value = 12,
icon = "fa-industry",
caption = "Microempresas"
)
```
Column {.tabset .tabset-fade data-width=750}
-----------------------------------------------------------------------
### Empresas por setores
```{r}
# Preparação dos dados
# Dados para TIC e Petróleo e Gás
tic_petroleo_data <- bd1 %>%
mutate(tipo_empresa = ifelse(tic == 1, "TIC", "Petróleo e Gás"))
# Dados para subsetores de TIC
tic_subsetores <- bd1 %>%
filter(tic == 1) %>%
group_by(segmento) %>%
summarize(Quantidade = n()) %>%
mutate(tipo_empresa = "TIC")
# Dados de Petróleo e Gás
petroleo_data <- bd1 %>%
filter(tic == 0) %>%
summarize(segmento = "Petróleo e Gás", Quantidade = n()) %>%
mutate(tipo_empresa = "Petróleo e Gás")
# Unindo os dados para criar o gráfico acumulado
combined_data <- bind_rows(tic_subsetores, petroleo_data)
# Criando o gráfico de barras acumuladas interativo
p_barras_acumuladas <- plot_ly(
combined_data,
x = ~tipo_empresa,
y = ~Quantidade,
color = ~segmento, # Define as cores com base nos segmentos
type = 'bar',
text = ~paste("Segmento:", segmento, "<br>Quantidade:", Quantidade),
hoverinfo = 'text'
) %>%
layout(
title = "Distribuição acumulada: Empresas TIC e Petróleo e Gás",
barmode = 'stack', # Define como gráfico de barras acumuladas
xaxis = list(title = "Tipo de Empresa"),
yaxis = list(title = "Quantidade"),
legend = list(title = list(text = "Segmentos"))
)
# Exibindo o gráfico interativo
p_barras_acumuladas
```
Pessoal
=======================================================================
Column {data-width=250}
-----------------------------------------------------------------------
### X
```{r}
valueBox(
value = 125,
icon = "fa-users",
caption = "Pessoal ocupado total"
)
```
Column {.tabset .tabset-fade data-width=750}
-----------------------------------------------------------------------
### Distribuição do pessoal por empresas
```{r}
# Cálculo do total de pessoal para cada empresa
bd1_ <- bd1 %>%
mutate(total_pessoal = pessoal_atuante + pessoal_socios + pessoal_contratos_formais +
pessoal_terceirizados + pessoal_estagiarios + pessoal_outros)
# Definindo as faixas de total de pessoal
bd1_ <- bd1_ %>%
mutate(faixa_pessoal = cut(total_pessoal,
breaks = c(0, 5, 10, 20, 50, Inf),
labels = c("0-5", "6-10", "11-20", "21-50", "51+")))
# Calculando a frequência de empresas em cada faixa de pessoal
frequencia_faixa <- bd1_ %>%
group_by(faixa_pessoal) %>%
summarize(Quantidade = n())
# Criação do gráfico de barras horizontais
p <- ggplot(frequencia_faixa, aes(y = faixa_pessoal, x = Quantidade, fill = faixa_pessoal)) +
geom_bar(stat = "identity") +
labs(title = "Distribuição de Empresas por Faixa de Total de Pessoal",
x = "Quantidade de Empresas", y = "Faixa de Total de Pessoal") +
theme_minimal() +
theme(legend.position = "none")
# Transformando o gráfico em interativo com tooltip
ggplotly(p, tooltip = c("x", "y"))
```
### Pessoal ocupado por segmento
```{r}
# Cálculo do total de pessoal para cada empresa
bd_1 <- bd1 %>%
mutate(total_pessoal = pessoal_atuante + pessoal_socios + pessoal_contratos_formais +
pessoal_terceirizados + pessoal_estagiarios + pessoal_outros)
# Identificação do setor a partir da coluna 'tic'
bd_1 <- bd_1 %>%
mutate(setor = ifelse(tic == 1, "TIC", "Petróleo e Gás"))
# Cálculo da média de pessoal por setor
media_pessoal_setor <- bd_1 %>%
group_by(setor) %>%
summarize(Media_Pessoal = mean(total_pessoal, na.rm = TRUE))
# Criação do gráfico de barras verticais
p <- ggplot(media_pessoal_setor, aes(x = setor, y = Media_Pessoal, fill = setor)) +
geom_bar(stat = "identity") +
labs(title = "Média de Pessoal por Setor",
x = "Setor", y = "Média de Pessoal") +
theme_minimal() +
theme(legend.position = "none")
# Transformando o gráfico em interativo com tooltip
ggplotly(p, tooltip = c("x", "y"))
```
### Pessoal por subsegmento TIC
```{r}
# Cálculo do total de pessoal para cada empresa
b_d1 <- bd1 %>%
mutate(total_pessoal = pessoal_atuante + pessoal_socios + pessoal_contratos_formais +
pessoal_terceirizados + pessoal_estagiarios + pessoal_outros)
# Cálculo da média de pessoal por segmento
media_pessoal_segmento <- b_d1 %>%
group_by(segmento) %>%
summarize(Media_Pessoal = mean(total_pessoal, na.rm = TRUE))
# Criação do gráfico de barras verticais
p <- ggplot(media_pessoal_segmento, aes(x = reorder(segmento, Media_Pessoal), y = Media_Pessoal, fill = segmento)) +
geom_bar(stat = "identity") +
labs(title = "Média de Pessoal por Segmento",
x = "Segmento", y = "Média de Pessoal") +
theme_minimal() +
theme(legend.position = "none") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Transformando o gráfico em interativo com tooltip
ggplotly(p, tooltip = c("x", "y"))
```
### Escolaridade de Pessoal
```{r}
# Supondo que 'bd1' já foi carregado anteriormente
# Soma as quantidades para cada grau de escolaridade
escolaridade_data <- bd1 %>%
summarize(
`Ensino Médio` = sum(escolaridade_medio, na.rm = TRUE),
`Superior Incompleto` = sum(escolaridade_sup_incompleto, na.rm = TRUE),
`Superior Completo` = sum(escolaridade_sup, na.rm = TRUE),
`Pós-graduação` = sum(escolaridade_pos, na.rm = TRUE)
) %>%
pivot_longer(cols = everything(), names_to = "Grau_de_escolaridade", values_to = "Numero_de_pessoas") %>%
mutate(Porcento = Numero_de_pessoas / sum(Numero_de_pessoas) * 100)
# Ordena os dados para o gráfico
escolaridade_data <- escolaridade_data %>%
arrange(factor(Grau_de_escolaridade, levels = c("Ensino Médio", "Superior Incompleto", "Superior Completo", "Pós-graduação")))
# Criação do gráfico de barras interativo sem texto sobre as barras
p_interactive_barras <- plot_ly(
escolaridade_data,
x = ~Grau_de_escolaridade,
y = ~Numero_de_pessoas,
type = 'bar',
hoverinfo = 'text', # Mostra informações apenas ao passar o mouse
hovertext = ~paste(
"Grau de Escolaridade:", Grau_de_escolaridade,
"<br>Quantidade:", Numero_de_pessoas,
"<br>Percentual:", round(Porcento, 2), "%"
),
marker = list(color = 'rgb(58, 123, 213)') # Cor personalizada para as barras
) %>%
layout(
title = "Distribuição de Escolaridade",
xaxis = list(title = "Grau de Escolaridade"),
yaxis = list(title = "Número de Pessoas"),
bargap = 0.2 # Espaço entre as barras
)
# Exibe o gráfico interativo
p_interactive_barras
```
Atividades de inovação
=======================================================================
Column {.tabset .tabset-fade}
-----------------------------------------------------------------------
### Tipo de Inovação
```{r}
# Modificar os rótulos das categorias para múltiplas linhas
bd2$tipo_inovacao <- str_wrap(bd2$tipo_inovacao, width = 30)
# Transformar os dados para facilitar a criação de barras separadas para "Sim" e "Não"
bd2_long <- bd2 %>%
pivot_longer(cols = c("sim", "nao"), names_to = "Resposta", values_to = "Quantidade")
# Criar o gráfico de barras horizontais
grafico <- ggplot(bd2_long, aes(x = reorder(tipo_inovacao, Quantidade), y = Quantidade, fill = Resposta)) +
geom_bar(stat = "identity", position = position_dodge(), aes(text = paste("Quantidade:", Quantidade))) +
coord_flip() + # Para barras horizontais
labs(
title = "Tipos de Inovação e Respostas (Sim/Não)",
x = "Tipo de Inovação",
y = "Quantidade",
fill = "Resposta"
) +
theme_minimal() +
scale_fill_manual(values = c("sim" = "steelblue", "nao" = "salmon"))
# Tornar o gráfico interativo com plotly
grafico_interativo <- ggplotly(grafico, tooltip = "text")
# Exibir o gráfico interativo
grafico_interativo
```
### Impacto da inovação
```{r}
# Modificar os rótulos das categorias para múltiplas linhas
bd3$impacto_inovacao <- str_wrap(bd3$impacto_inovacao, width = 30)
# Transformar os dados para facilitar a criação de barras separadas para "Sim" e "Não"
bd3_long <- bd3 %>%
pivot_longer(cols = c("sim", "nao"), names_to = "Resposta", values_to = "Quantidade")
# Criar o gráfico de barras horizontais
grafico <- ggplot(bd3_long, aes(x = reorder(impacto_inovacao, Quantidade), y = Quantidade, fill = Resposta)) +
geom_bar(stat = "identity", position = position_dodge(), aes(text = paste("Quantidade:", Quantidade))) +
coord_flip() + # Para barras horizontais
labs(
title = "Impactos da Inovação e Respostas (Sim/Não)",
x = "Impacto da Inovação",
y = "Quantidade",
fill = "Resposta"
) +
theme_minimal() +
scale_fill_manual(values = c("sim" = "steelblue", "nao" = "salmon"))
# Tornar o gráfico interativo com plotly
grafico_interativo <- ggplotly(grafico, tooltip = "text")
# Exibir o gráfico interativo
grafico_interativo
```
### Dificuldades apresentadas
```{r}
# Transformar os dados para criar barras separadas para "Sim" e "Não"
bd4_long <- bd4 %>%
pivot_longer(cols = c("sim", "nao"), names_to = "Resposta", values_to = "Quantidade")
# Definir a ordem de exibição dos níveis para "Resposta" (Sim antes de Não)
bd4_long$Resposta <- factor(bd4_long$Resposta, levels = c("sim", "nao"))
# Modificar os rótulos das categorias para múltiplas linhas
bd4_long$Dificuldades <- str_wrap(bd4_long$Dificuldades, width = 30)
# Criar o gráfico de barras horizontais
grafico <- ggplot(bd4_long, aes(x = reorder(Dificuldades, Quantidade), y = Quantidade, fill = Resposta)) +
geom_bar(stat = "identity", position = position_dodge(), aes(text = paste("Quantidade:", Quantidade))) +
coord_flip() + # Para barras horizontais
labs(
title = "Dificuldades na Implementação do Projeto e Respostas (Sim/Não)",
x = "Dificuldades",
y = "Quantidade",
fill = "Resposta"
) +
theme_minimal() +
scale_fill_manual(values = c("sim" = "steelblue", "nao" = "salmon"))
# Tornar o gráfico interativo com plotly
grafico_interativo <- ggplotly(grafico, tooltip = "text")
# Exibir o gráfico interativo
grafico_interativo
```
### Frequência de implementação de P&D
```{r}
# Etapa 1: Resumo dos dados para contar 'Sim' e 'Não' para cada tipo de P&D
bd1_resumo <- bd1 %>%
summarise(
ped_continua_sim = sum(ped_continua == 1, na.rm = TRUE),
ped_continua_nao = sum(ped_continua == 0, na.rm = TRUE),
ped_ocasional_sim = sum(ped_ocasional == 1, na.rm = TRUE),
ped_ocasional_nao = sum(ped_ocasional == 0, na.rm = TRUE),
ped_nao_sim = sum(ped_nao == 1, na.rm = TRUE),
ped_nao_nao = sum(ped_nao == 0, na.rm = TRUE)
)
# Etapa 2: Transformação para o formato longo, ajustando `names_pattern` para evitar o aviso
bd1_long <- bd1_resumo %>%
pivot_longer(
cols = everything(),
names_to = c("Categoria", "Resposta"),
names_pattern = "(.*)_(sim|nao)",
values_to = "Quantidade"
)
# Etapa 3: Recodificação das variáveis para tornar os nomes mais legíveis
bd1_long <- bd1_long %>%
mutate(
Categoria = recode(Categoria,
"ped_continua" = "P&D contínuo",
"ped_ocasional" = "P&D ocasional",
"ped_nao" = "Nunca realiza P&D"),
Resposta = recode(Resposta, "sim" = "Sim", "nao" = "Não")
)
# Etapa 4: Criar o gráfico de barras horizontais usando ggplot2
grafico <- ggplot(bd1_long, aes(x = reorder(Categoria, Quantidade), y = Quantidade, fill = Resposta)) +
geom_bar(stat = "identity", position = position_dodge()) +
coord_flip() +
labs(title = "Distribuição das atividades de P&D", x = "Categoria", y = "Quantidade") +
theme_minimal()
# Torna o gráfico interativo com plotly para exibir informações de x e y ao passar o mouse
grafico_interativo <- ggplotly(grafico, tooltip = c("x", "y", "fill"))
# Exibe o gráfico interativo
grafico_interativo
```