Carregamento de Pacotes e Dados
Primeiro, carregamos os pacotes necessários para manipulação de dados (tidyverse) e formatação de tabelas (gt).
# Instale os pacotes se ainda não tiver: install.packages(c("tidyverse", "gt"))
library (tidyverse)
library (gt)
# Carregando o banco de dados
# O delimitador é ponto e vírgula (;), então usamos read_delim
dados <- read_delim ("Banco de dados Gemini.csv" , delim = ";" , show_col_types = FALSE )
# Visualizando as primeiras linhas para confirmar o carregamento
head (dados)
# A tibble: 6 × 13
ID Sexo Ano_residencia Questao_1 Questao_2 Questao_3 Questao_4 Questao_5
<dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <chr>
1 30 Mascul… 2024 Correto Correto Correto Correto Errado
2 31 Mascul… 2025 Errado Correto Correto Errado Correto
3 32 Mascul… 2025 Correto Correto Correto Correto Correto
4 39 Mascul… 2024 Errado Correto Correto Errado Correto
5 44 Mascul… 2023 Correto Errado Correto Correto Correto
6 47 Mascul… 2023 Errado Errado Correto Errado Correto
# ℹ 5 more variables: Questao_6 <chr>, Questao_7 <chr>, Questao_8 <chr>,
# Questao_9 <chr>, Questao_10 <chr>
Análise das Proporções de Acertos Vamos transformar os dados para calcular a porcentagem de respostas “Correto” para as questões de 1 a 10.
# Selecionar apenas as colunas das questões e transformar para formato longo
df_resumo <- dados %>%
select (starts_with ("Questao" )) %>%
pivot_longer (cols = everything (),
names_to = "Questao" ,
values_to = "Resultado" ) %>%
# Extrair o número da questão para ordenar corretamente (opcional, mas bom para gráficos)
mutate (Numero_Questao = as.numeric (str_extract (Questao, " \\ d+" ))) %>%
group_by (Questao, Numero_Questao) %>%
summarise (
Total = n (),
Acertos = sum (Resultado == "Correto" , na.rm = TRUE ),
Proporcao = Acertos / Total,
Porcentagem = Proporcao * 100 ,
.groups = 'drop'
) %>%
arrange (Numero_Questao)
# Exibindo a tabela formatada
df_resumo %>%
select (Questao, Acertos, Total, Porcentagem) %>%
gt () %>%
tab_header (
title = "Proporção de Acertos por Questão"
) %>%
fmt_number (
columns = c (Porcentagem),
decimals = 1 ,
suffixing = FALSE ,
pattern = "{x}%"
)
Questao
Acertos
Total
Porcentagem
Questao_1
29
40
72.5%
Questao_2
32
40
80.0%
Questao_3
40
40
100.0%
Questao_4
28
40
70.0%
Questao_5
30
40
75.0%
Questao_6
15
40
37.5%
Questao_7
18
40
45.0%
Questao_8
32
40
80.0%
Questao_9
21
40
52.5%
Questao_10
35
40
87.5%
Visualização Gráfica Abaixo, um gráfico de barras mostrando a taxa de acerto para cada questão.
ggplot (df_resumo, aes (x = reorder (Questao, Numero_Questao), y = Porcentagem)) +
geom_col (fill = "#4E79A7" , width = 0.7 ) +
geom_text (aes (label = sprintf ("%.1f%%" , Porcentagem)),
vjust = - 0.5 , size = 3.5 ) +
scale_y_continuous (limits = c (0 , 110 ), breaks = seq (0 , 100 , 20 )) +
labs (
title = "Taxa de Acertos por Questão" ,
subtitle = "Análise baseada nas respostas 'Correto'" ,
x = "Questão" ,
y = "Porcentagem de Acertos (%)"
) +
theme_minimal () +
theme (
axis.text.x = element_text (angle = 45 , hjust = 1 ),
panel.grid.major.x = element_blank ()
)