Calcule média e desvio padrão da idade e nível de interesse. As métricas contendos as métricas calculadas para idade e devem ser apresentadas de forma ordenada, da maior idade para a menor. Além de apresentar no relatório, os resultados devem ser salvos em um arquivo csv, que deve ser adicionado ao repositório.
Qual o curso com maior valor médio de idade? Discutir os resultados com base nos dados disponíveis em termos de representatividade.
Crie um gráfico que mostra a idade média para cada curso. Apresente o gráfico e discuta os resultados no relatório. O gráfico também deve ser salvo em uma imagem no formato png, que deve ser adicionada ao repositório.
Crie um gráfico que mostra o percentual de alunos para cada estado de origem. Apresente o gráfico e discuta os resultados no relatório. O gráfico também deve ser salvo em uma imagem no formato png, que deve ser adicionada ao repositório.
Compare a média de idade geral com a média de idade dos top-5 e dos bottom-5. Além de apresentar e discutir os resultados no relatório, salvar em uma tabela (dataframe) com as médias em questão.
library(dplyr)
## Registered S3 methods overwritten by 'tibble':
## method from
## format.tbl pillar
## print.tbl pillar
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(readr)
library(here)
## here() starts at C:/Users/pbita/Desktop/MESTRADO_CC/Fundamentos de Pesquisa em Ciencia da Computacao_2/fpcc2-lab1-italobrito-master/fpcc2-lab1-italobrito-master
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.0.3 v stringr 1.4.0
## v tidyr 1.2.0 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(tibble)
library(ggplot2)
library(scales)
##
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
##
## discard
## The following object is masked from 'package:readr':
##
## col_factor
turma_fpcc2 <- read_csv(here("data/dados-fpcc2-22.1.csv"), show_col_types = FALSE)
colnames <- c("tipo_curso", "matricula", "conf_sumarios", "conf_histo",
"ler_ingles", "prog_r", "linear", "logistica",
"exp_pesq", "exp_dev", "exp_admin",
"exp_desc", "area", "outra",
"idade", "irmaos", "altura", "uf")
colnames(turma_fpcc2) <- colnames
glimpse(turma_fpcc2)
## Rows: 24
## Columns: 18
## $ tipo_curso <chr> "Mestrado", "Doutorado", "Mestrado", "Mestrado", "Mestra~
## $ matricula <chr> "Regular", "Regular", "Regular", "Regular", "Regular", "~
## $ conf_sumarios <chr> "Bastante confiante", "Bastante confiante", "Um pouco", ~
## $ conf_histo <chr> "Bastante confiante", "Bastante confiante", "Um pouco", ~
## $ ler_ingles <chr> "Bastante confiante", "Médio", "Um pouco", "Totalmente c~
## $ prog_r <chr> "Médio", "Médio", "Nenhuma confiança", "Médio", "Nenhuma~
## $ linear <chr> "Um pouco", "Médio", "Um pouco", "Médio", "Médio", "Bast~
## $ logistica <chr> "Um pouco", "Um pouco", "Um pouco", "Médio", "Nenhuma co~
## $ exp_pesq <chr> "1 ano", "3 anos", "0 anos", "3 anos", "0 anos", "2 anos~
## $ exp_dev <chr> "3 anos", "1 ano", "0 anos", "1 ano", "4+ anos", "1 ano"~
## $ exp_admin <chr> "0 anos", "1 ano", "0 anos", "2 anos", "0 anos", "0 anos~
## $ exp_desc <chr> NA, "Pesquisa: Mestrado e Projetos PIBIC e PIBITI. Desen~
## $ area <chr> "IA, NLP", "Inteligência Artificial na Educação", "Siste~
## $ outra <chr> NA, NA, NA, "Tenho bastante interesse nas áreas de lingu~
## $ idade <chr> "29", "36", "26", "29", "25", "22", "24", "28", "27", "3~
## $ irmaos <chr> "3", "1", "2", "2", "1", "1", "0", "1", "2", "1", "4", "~
## $ altura <chr> "178", "152", "1,65", "170,5", "174", "167", "180", "176~
## $ uf <chr> "PB", "Alagoas", "Opção 1", "PB", "PB", "PB", "Opção 1",~
turma_fpcc2$idade
## [1] "29" "36" "26" "29" "25" "22"
## [7] "24" "28" "27" "35" "38" "34"
## [13] "25" "37" "38" "23" "25 anos." "22"
## [19] "26" "30 anos" "39 anos" "39" "25" "30"
turma_fpcc2$idade[turma_fpcc2$idade == "30 anos"] <- "30"
turma_fpcc2$idade[turma_fpcc2$idade == "39 anos"] <- "39"
turma_fpcc2$idade[turma_fpcc2$idade == "25 anos."] <- "25"
turma_fpcc2 <- turma_fpcc2 %>% mutate_at(vars(idade), parse_number)
turma_fpcc2$idade
## [1] 29 36 26 29 25 22 24 28 27 35 38 34 25 37 38 23 25 22 26 30 39 39 25 30
idade_turma_ordenada <- sort(turma_fpcc2$idade, decreasing = TRUE)
idade_turma_ordenada
## [1] 39 39 38 38 37 36 35 34 30 30 29 29 28 27 26 26 25 25 25 25 24 23 22 22
mean(idade_turma_ordenada)
## [1] 29.66667
sd(idade_turma_ordenada)
## [1] 5.798551
idade_turma_ordenada["media"] <- mean(idade_turma_ordenada)
idade_turma_ordenada["desvio_padrao"] <- sd(idade_turma_ordenada)
idade_turma_ordenada
##
## 39.000000 39.000000 38.000000 38.000000 37.000000
##
## 36.000000 35.000000 34.000000 30.000000 30.000000
##
## 29.000000 29.000000 28.000000 27.000000 26.000000
##
## 26.000000 25.000000 25.000000 25.000000 25.000000
## media
## 24.000000 23.000000 22.000000 22.000000 29.666667
## desvio_padrao
## 5.676462
write.table(idade_turma_ordenada, file = "idade_turma.csv", row.names = TRUE)
unique(turma_fpcc2$tipo_curso)
## [1] "Mestrado" "Doutorado"
list_doutorado <- turma_fpcc2 %>% filter(tipo_curso == "Doutorado") %>% select(tipo_curso, idade)
list_doutorado
## # A tibble: 3 x 2
## tipo_curso idade
## <chr> <dbl>
## 1 Doutorado 36
## 2 Doutorado 34
## 3 Doutorado 37
mean(list_doutorado$idade)
## [1] 35.66667
mean(list_doutorado$idade)
## [1] 35.66667
list_mestrado <- turma_fpcc2 %>% filter(tipo_curso == "Mestrado") %>% select(tipo_curso, idade)
mean(list_mestrado$idade)
## [1] 28.80952
data_question_3 <- data.frame(
tipo_curso = c("Mestrado","Doutorado"),
media_idade = c(mean(list_mestrado$idade),mean(list_doutorado$idade))
)
data_question_3
## tipo_curso media_idade
## 1 Mestrado 28.80952
## 2 Doutorado 35.66667
plot_question_3 <- ggplot(data_question_3, aes(media_idade, tipo_curso, fill = tipo_curso)) + geom_bar(stat = "identity") + xlab("Média de Idade") + ylab("Tipo de curso") + theme(legend.position = "None")
print(plot_question_3)
ggsave(filename = "./question3.png", plot=plot_question_3)
## Saving 7 x 5 in image
unique(turma_fpcc2$uf)
## [1] "PB"
## [2] "Alagoas"
## [3] "Opção 1"
## [4] "Paraíba"
## [5] "Acre"
## [6] "Paraiba"
## [7] "PB (Campina Grande)"
## [8] "Pernambuco, mas moro em Campina Grande há mais de 20 anos"
## [9] "RJ"
turma_fpcc2$uf[turma_fpcc2$uf == "PB (Campina Grande)"] <- "PB"
turma_fpcc2$uf[turma_fpcc2$uf == "Pernambuco, mas moro em Campina Grande há mais de 20 anos"] <- "PE"
turma_fpcc2$uf[turma_fpcc2$uf == "Opção 1"] <- "N/A"
turma_fpcc2$uf[turma_fpcc2$uf == "Paraiba"] <- "Paraíba"
turma_fpcc2$uf[turma_fpcc2$uf == "Paraíba"] <- "PB"
turma_fpcc2$uf[turma_fpcc2$uf == "Acre"] <- "AC"
turma_fpcc2$uf[turma_fpcc2$uf == "Alagoas"] <- "AL"
count_list_for_uf <- turma_fpcc2 %>% group_by(uf) %>% count()
total <- count_list_for_uf$n %>% sum()
row <- data.frame(uf="Total", n=total)
count_list_for_uf <- rbind(count_list_for_uf,row)
count_list_for_uf["Percentual"] <- (count_list_for_uf$n / total)*100
count_list_for_uf
## # A tibble: 7 x 3
## # Groups: uf [7]
## uf n Percentual
## <chr> <int> <dbl>
## 1 AC 2 8.33
## 2 AL 1 4.17
## 3 N/A 5 20.8
## 4 PB 14 58.3
## 5 PE 1 4.17
## 6 RJ 1 4.17
## 7 Total 24 100
count_list_for_uf <- count_list_for_uf[0:(nrow(count_list_for_uf)-1),]
plot_question_4 <- ggplot(count_list_for_uf, aes(Percentual, uf, fill = uf)) + geom_bar(stat = "identity") + xlab("Média de Idade") + ylab("Tipo de curso") + theme(legend.position = "None")
print(plot_question_4)
ggsave(filename = "./question4.png", plot=plot_question_4)
## Saving 7 x 5 in image
new_list_age <- sort(turma_fpcc2$idade, decreasing = TRUE)
data_question_5 <- data.frame(
descricao = c("geral","top5","bottom5"),
media = c(mean(turma_fpcc2$idade),mean(head(new_list_age, n = 5)),mean(tail(new_list_age, n = 5)))
)
data_question_5
## descricao media
## 1 geral 29.66667
## 2 top5 38.20000
## 3 bottom5 23.20000