library (readr)
library (dplyr)
##
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
##
## filter, lag
## Os seguintes objetos são mascarados por 'package:base':
##
## intersect, setdiff, setequal, union
library (ggplot2)
dff<- read_csv("C:/LabDadosR/cursos-prouni.csv")
## Rows: 41447 Columns: 20
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (9): grau, turno, curso_busca, cidade_busca, uf_busca, cidade_filtro, u...
## dbl (11): mensalidade, bolsa_integral_cotas, bolsa_integral_ampla, bolsa_par...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
dp <- dff %>%
#Filtra Curso de ciência da computação
filter(curso_busca=="Ciência da Computação")
# Filtrar por regiões Nordeste e Sudeste
cursos_cc_ne <- dp %>% filter(uf_busca %in% c("AL", "BA", "CE", "MA", "PB", "PE", "PI", "RN", "SE"))
cursos_cc_se <- dp %>% filter(uf_busca %in% c("ES", "MG", "RJ", "SP"))
# Calcular médias e medianas das mensalidades
media_ne <- mean(cursos_cc_ne$mensalidade)
mediana_ne <- median(cursos_cc_ne$mensalidade)
media_se <- mean(cursos_cc_se$mensalidade)
mediana_se <- median(cursos_cc_se$mensalidade)
# Teste t para comparar as médias
teste_t <- t.test(cursos_cc_ne$mensalidade, cursos_cc_se$mensalidade, na.rm = TRUE)
# Exibir resultado do teste t
print(teste_t)
##
## Welch Two Sample t-test
##
## data: cursos_cc_ne$mensalidade and cursos_cc_se$mensalidade
## t = -3.0631, df = 90.575, p-value = 0.002884
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -307.16124 -65.48913
## sample estimates:
## mean of x mean of y
## 712.7342 899.0594
# Calcular a diferença entre médias e medianas
dif_media <- media_se - media_ne
dif_mediana <- mediana_se - mediana_ne
resultados <- data.frame(
Regiao = c("Nordeste", "Nordeste", "Sudeste", "Sudeste"),
Tipo = c("Média", "Mediana", "Média", "Mediana"),
Mensalidade = c(media_ne, mediana_ne, media_se, mediana_se)
)
# Plotar o gráfico de barras
ggplot(resultados, aes(x = Regiao, y = Mensalidade, fill = Tipo)) +
geom_bar(stat = "identity", position = "dodge") +
geom_text(aes(label = round(Mensalidade, 2)),
position = position_dodge(width = 0.9),
vjust = -0.5) +
labs(title = "Mensalidades Médias e Medianas dos Cursos de Ciência da Computação",
x = "Região",
y = "Mensalidade (R$)",
fill = "Tipo") +
theme_minimal()
#Questão02
# Ler o arquivo CSV
df <- read.csv("C:/LabDadosR/cursos-prouni.csv")
# Calcular o total de bolsas para cada curso
df$total_bolsas <- rowSums(df[, c("bolsa_integral_cotas", "bolsa_integral_ampla", "bolsa_parcial_cotas", "bolsa_parcial_ampla")], na.rm = TRUE)
grouped <- df %>%
group_by(curso_busca) %>%
summarise(mensalidade_total = sum(mensalidade, na.rm = TRUE),
total_bolsas = sum(total_bolsas, na.rm = TRUE))
# Calcular a mensalidade por bolsa
grouped <- grouped %>%
mutate(mensalidade_por_bolsa = mensalidade_total / total_bolsas)
# Selecionar os top 10 cursos com maior valor de mensalidade por bolsa
top_10_cursos <- grouped %>%
arrange(desc(mensalidade_por_bolsa)) %>%
head(10)
# Exibir os top 10 cursos
print("Top 10 cursos com maior valor de mensalidade pelo total de bolsas:")
## [1] "Top 10 cursos com maior valor de mensalidade pelo total de bolsas:"
print(top_10_cursos)
## # A tibble: 10 × 4
## curso_busca mensalidade_total total_bolsas mensalidade_por_bolsa
## <chr> <dbl> <dbl> <dbl>
## 1 Música - Composição 2211 1 2211
## 2 Engenharia de Materiais… 4108 2 2054
## 3 Comunicação Social - Ra… 3458 2 1729
## 4 Artes Cênicas 3807 3 1269
## 5 Comunicação Social - Ci… 8347 7 1192.
## 6 Gestão de Equinocultura 1153 1 1153
## 7 Design de Games 2180 2 1090
## 8 Produção Cênica 939. 1 939.
## 9 Geologia 1762. 2 881.
## 10 Design Digital 3090 4 772.
# Calcular a correlação entre o valor total de mensalidade e o total de bolsas
correlacao <- cor(grouped$mensalidade_total, grouped$total_bolsas, use = "complete.obs")
# Exibir a correlação
print("Correlação entre o valor total de mensalidade e o total de bolsas por curso:")
## [1] "Correlação entre o valor total de mensalidade e o total de bolsas por curso:"
print(correlacao)
## [1] 0.9251574
# Criar o gráfico de barras
ggplot(top_10_cursos, aes(x = reorder(curso_busca, -mensalidade_por_bolsa), y = mensalidade_por_bolsa)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = round(mensalidade_por_bolsa, 2)), vjust = -0.5, color = "white") +
geom_text(aes(label = round(total_bolsas, 2)), vjust = -0.5, color = "black") +
labs(title = "Top 10 Cursos com Maior Valor de Mensalidade por Bolsa",
x = "Curso",
y = "Mensalidade por Bolsa (R$)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
#Questão03
# Ler o arquivo CSV
df <- read.csv("C:/LabDadosR/cursos-prouni.csv")
# Filtrar os cursos tecnológicos do estado da Paraíba
cursos_tecnologicos_pb <- df %>%
filter(grau == "Tecnológico" & uf_busca == "PB")
# Calcular o total de bolsas para cada curso
cursos_tecnologicos_pb <- cursos_tecnologicos_pb %>%
mutate(total_bolsas = rowSums(select(., bolsa_integral_cotas, bolsa_integral_ampla, bolsa_parcial_cotas, bolsa_parcial_ampla), na.rm = TRUE))
# Agrupar por curso e calcular o total de bolsas de cada tipo
bolsas_por_curso <- cursos_tecnologicos_pb %>%
group_by(curso_busca) %>%
summarise(
total_bolsas = sum(total_bolsas, na.rm = TRUE),
bolsa_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
bolsa_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
bolsa_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
bolsa_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE)
) %>%
arrange(desc(total_bolsas))
# Criar o gráfico de barras
ggplot(bolsas_por_curso, aes(x = reorder(curso_busca, -total_bolsas), y = total_bolsas)) +
geom_bar(stat = "identity", fill = "orange") +
geom_text(aes(label = total_bolsas), vjust = -0.5, color = "white") +
geom_text(aes(label = round(total_bolsas, 2)), vjust = -0.5, color = "black") +
labs(title = "Cursos Tecnológicos da Paraíba com Mais Bolsas de Estudo",
x = "Curso",
y = "Total de Bolsas") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
#Questão04
# Ler o arquivo CSV
df <- read.csv("C:/LabDadosR/cursos-prouni.csv")
# Filtrar os cursos de interesse
cursos_interesse <- df %>%
filter(curso_busca %in% c("Ciência da Computação", "Engenharia da Computação", "Sistemas de Informação"))
# Calcular o total de bolsas para cada curso e modalidade
bolsas_por_modalidade <- cursos_interesse %>%
group_by(curso_busca, turno) %>%
summarise(
total_bolsas = sum(bolsa_integral_cotas, na.rm = TRUE) +
sum(bolsa_integral_ampla, na.rm = TRUE) +
sum(bolsa_parcial_cotas, na.rm = TRUE) +
sum(bolsa_parcial_ampla, na.rm = TRUE)
)
## `summarise()` has grouped output by 'curso_busca'. You can override using the
## `.groups` argument.
# Calcular o percentual de bolsas para cada modalidade por curso
percentual_bolsas <- bolsas_por_modalidade %>%
group_by(curso_busca) %>%
mutate(percentual = total_bolsas / sum(total_bolsas) * 100)
# Exibir os resultados
print("Percentual de bolsas ofertadas para cada modalidade por curso:")
## [1] "Percentual de bolsas ofertadas para cada modalidade por curso:"
print(percentual_bolsas)
## # A tibble: 11 × 4
## # Groups: curso_busca [3]
## curso_busca turno total_bolsas percentual
## <chr> <chr> <int> <dbl>
## 1 Ciência da Computação Integral 20 1.26
## 2 Ciência da Computação Matutino 384 24.2
## 3 Ciência da Computação Noturno 1169 73.5
## 4 Ciência da Computação Vespertino 17 1.07
## 5 Engenharia da Computação Integral 22 18.2
## 6 Engenharia da Computação Matutino 19 15.7
## 7 Engenharia da Computação Noturno 80 66.1
## 8 Sistemas de Informação Curso a Distância 95 4.94
## 9 Sistemas de Informação Matutino 260 13.5
## 10 Sistemas de Informação Noturno 1514 78.6
## 11 Sistemas de Informação Vespertino 56 2.91
# Criar o gráfico de barras
ggplot(percentual_bolsas, aes(x = turno, y = percentual, fill = curso_busca)) +
geom_text(aes(label = round(percentual, 2)),
position = position_dodge(width = 0.9),
vjust = -0.5) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Percentual de Bolsas Ofertadas por Modalidade",
x = "Modalidade",
y = "Percentual de Bolsas (%)",
fill = "Curso") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))