:: Libraries

if(!require("reticulate")){install.packages("reticulate")}
if(!require("DT")){install.packages("DT")}
if(!require("tidyverse")){install.packages("tidyverse")}

:: Read

from data.table

df_alunos_raw = data.table::fread('../data/raw_sample/df_alunos.csv')
df_matriculas_raw = data.table::fread('../data/raw_sample/df_matriculas.csv')
df_notas_raw = data.table::fread('../data/raw_sample/df_notas.csv')
df_v_alunos_raw = data.table::fread('../data/raw_sample/df_v_alunos.csv')
df_v_rank_raw = data.table::fread('../data/raw_sample/df_v_rank.csv')
df_v_notas_raw = data.table::fread('../data/raw_sample/df_v_notas.csv')

:: Transform

df_alunos

df_alunos <- df_alunos_raw %>% glimpse()
## Rows: 999
## Columns: 5
## $ numero_inscricao_candidato <int> 15521, 15623, 16650, 16518, 16700, 12774, 3~
## $ numero_matricula_aluno     <int> 776, 755, 695, 677, 647, 465, 47, 59, 738, ~
## $ ano_ingresso_aluno         <int> 2018, 2018, 2018, 2018, 2018, 2019, 2021, 2~
## $ semestre_ingresso_aluno    <int> 61, 61, 61, 61, 61, 61, 62, 62, 61, 61, 61,~
## $ status_matricula_aluno     <chr> "Cancelado", "Cancelado", "Jubilado", "Canc~

df_matriculas

df_matriculas <- df_matriculas_raw %>% glimpse()
## Rows: 1,000
## Columns: 11
## $ numero_matricula_aluno      <int> 844, 378, 708, 629, 547, 338, 716, 658, 67~
## $ ano                         <int> 2019, 2021, 2020, 2018, 2019, 2021, 2021, ~
## $ semestre                    <int> 62, 61, 62, 61, 62, 61, 61, 62, 61, 61, 62~
## $ codigo_disciplina           <int> 164, 251, 148, 175, 156, 162, 72, 156, 175~
## $ nome_disciplina             <chr> "Disciplina 164", "Disciplina 251", "Disci~
## $ codigo_turma                <chr> "TURMA_207", "TURMA_282", "TURMA_155", "TU~
## $ status_matricula_disciplina <chr> "Aprovado", "Aprovado", "Aprovado", "Cance~
## $ codigo_professor            <int> 101, 8, 42, 90, 77, 82, 24, 77, 48, 106, 4~
## $ nome_professor              <chr> "Professor 101", "Professor 8", "Professor~
## $ serie_aluno                 <int> 4, 2, 5, 1, 2, 3, 7, 2, 1, 3, 4, 2, 6, 3, ~
## $ nota_final                  <dbl> 7.34, 0.00, 5.62, NA, 5.78, 5.40, 7.14, 5.~

df_v_alunos

df_v_alunos <- df_v_alunos_raw %>% glimpse()
## Rows: 1,000
## Columns: 52
## $ numero_inscricao_candidato                    <int> 16480, 8893, 13357, 9573~
## $ nome_candidato                                <chr> "Candidato 16480", "Cand~
## $ status_inscricao_candidato                    <chr> "Confirmado", "InscriçÃ~
## $ curso                                         <chr> "ADMINISTRAÇÃO", "ADMI~
## $ codigo_vestibular                             <int> 2010, 2171, 2021, 2171, ~
## $ nome_vestibular                               <chr> "Vestibular 2010", "Vest~
## $ tipo_vestibular                               <chr> "Vestibular tradicional"~
## $ ano_vestibular                                <int> 2018, 2020, 2019, 2020, ~
## $ data_inscricao_vestibular                     <dbl> 42954.97, 43710.72, 4334~
## $ sexo_candidato                                <chr> "M", "M", "M", "F", "F",~
## $ raca_candidato                                <chr> "parda", "Branca", "Cand~
## $ nacionalidade_candidato                       <chr> "BRASILEIRA", "BRASILEIR~
## $ pais_nascimento_candidato                     <chr> "BRASIL", "Brasil", "Bra~
## $ uf_nascimento_candidato                       <chr> "SP", "São Paulo", "Sã~
## $ cidade_nascimento_candidato                   <chr> "SAO PAULO", "SAO BERNAR~
## $ candidato_treineiro                           <chr> "N", "Não", "Não", "NÃ~
## $ semestre_conclusao_ensino_medio_candidato     <int> NA, NA, NA, NA, NA, NA, ~
## $ ano_conclusao_ensino_medio_candidato          <int> 2015, 2019, 2018, 2019, ~
## $ bairro_residencial_candidato                  <chr> "JARDIM LAR SAO PAULO", ~
## $ uf_residencial_candidato                      <chr> "SP", "São Paulo", "Sã~
## $ cidade_residencial_candidato                  <chr> "SAO PAULO", "SANTO ANDR~
## $ necessidade_especial_candidato                <chr> "", "Não", "Não", "Nã~
## $ necessidade_especial_detalhe_candidato        <chr> "", "", "", "", "", "", ~
## $ tipo_escola_ensino_medio_candidato            <chr> "Somente em escola parti~
## $ cursou_escola_ensino_medio_exterior_candidato <chr> "Não", "Sim, especifiqu~
## $ nome_escola_ensino_medio_exterior_candidato   <chr> "", "Morei na colombia p~
## $ tipo_ensino_medio_candidato                   <chr> "Comum", "Outro. Especif~
## $ uf_escola_ensino_medio_candidato              <chr> "SAO PAULO", "São Paulo~
## $ cidade_escola_ensino_medio_candidato          <chr> "SAO PAULO", "SANTO ANDR~
## $ nome_escola_ensino_medio_candidato            <chr> "OUTRA - Pio XII", "OBJE~
## $ curso_curso_pre_vestibular                    <chr> "De 1 semestre a 1 ano",~
## $ nome_curso_pre_vestibular                     <chr> "INTERGRAUS", "OBJETIVO ~
## $ outra_faculdade_tentada_1                     <chr> "FGV", "", "", "INSPER",~
## $ outra_faculdade_tentada_curso_1               <chr> "ADMINISTRAÇÃO", "", "~
## $ outra_faculdade_tentada_2                     <chr> "Insper", "", "", "UNILA~
## $ outra_faculdade_tentada_curso_2               <chr> "ADMINISTRAÇÃO", "", "~
## $ outra_faculdade_tentada_3                     <chr> "", "", "", "ESCOLA DE E~
## $ outra_faculdade_tentada_curso_3               <chr> "", "", "", "CIÊNCIAS E~
## $ outra_faculdade_tentada_4                     <chr> "", "", "", "UNIOESTE", ~
## $ outra_faculdade_tentada_curso_4               <chr> "", "", "", "CIÊNCIAS C~
## $ outra_faculdade_tentada_5                     <chr> "", "", "", "", "", "", ~
## $ outra_faculdade_tentada_curso_5               <chr> "", "", "", "", "", "", ~
## $ nivel_ingles_leitura_candidato                <chr> "Bem", "", "", "", "", "~
## $ nivel_ingles_compreensao_candidato            <chr> "Bem", "", "", "", "", "~
## $ nivel_ingles_fala_candidato                   <chr> "Bem", "", "", "", "", "~
## $ nivel_ingles_escrita_candidato                <chr> "Bem", "", "", "", "", "~
## $ situacao_profissional_mae_candidato           <chr> "Empresário", "Profissi~
## $ situacao_profissional_pai_candidato           <chr> "Funcionário de Empresa~
## $ renda_mensal_familia_candidato                <chr> "Acima de R$ 30.000,00",~
## $ quantidade_pessoas_familia_candidato          <chr> "5", "5", "6", "7", "4",~
## $ bolsa_ensino_medio_candidato                  <chr> "Nao", "", "", "", "", "~
## $ bolsa_percentual_ensino_medio_candidato       <int> NA, NA, NA, NA, NA, NA, ~

df_v_rank

df_v_rank <- df_v_rank_raw %>% glimpse()
## Rows: 1,000
## Columns: 5
## $ numero_inscricao_candidato               <int> 16731, 5348, 11913, 8216, 133~
## $ codigo_vestibular                        <int> 2010, 2171, 2021, 2171, 2021,~
## $ classificacao_candidato_vestibular       <int> NA, NA, NA, NA, 334, NA, NA, ~
## $ classificacao_candidato_curso_vestibular <int> NA, NA, NA, NA, 160, NA, NA, ~
## $ candidato_desclassificado                <chr> "S", "S", "S", "S", "N", "S",~

df_v_notas

df_v_notas <- df_v_notas_raw %>%
  #temos notas repetidas para algumas chaves, mantemos as notas maiores
    arrange(-nota_prova) %>% 
    distinct(numero_inscricao_candidato, codigo_prova, .keep_all = TRUE, ) %>%
    select(-prova) %>% 
    pivot_wider(names_from = codigo_prova, values_from = nota_prova, names_prefix = "nota_v_") %>% 
    glimpse()
## Rows: 935
## Columns: 25
## $ numero_inscricao_candidato <int> 15351, 16478, 13432, 9299, 10228, 2364, 52,~
## $ nota_v_LC                  <dbl> 1000.0, 1000.0, NA, NA, 975.5, NA, NA, NA, ~
## $ nota_v_CE                  <dbl> NA, NA, 1000.00, NA, NA, NA, NA, NA, 933.33~
## $ nota_v_MATO                <dbl> NA, NA, NA, 1000, NA, NA, NA, NA, NA, NA, N~
## $ nota_v_REDA                <dbl> NA, NA, NA, NA, NA, 946.67, NA, NA, NA, NA,~
## $ nota_v_PP                  <dbl> NA, NA, NA, NA, NA, NA, 937.50, NA, NA, NA,~
## $ nota_v_PF2                 <dbl> NA, NA, NA, NA, NA, NA, NA, 937.50, NA, NA,~
## $ nota_v_REDA3               <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_EO                  <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_PF1                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_PSF                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_MA                  <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_MAP                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_ANVET               <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_CH                  <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_ANQLT               <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_RE                  <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_CHP                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_CNP                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_CN                  <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_LI                  <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_LIP                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_ERW                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_REDA1               <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ nota_v_REDA2               <dbl> NA, 9.5, NA, NA, NA, NA, NA, NA, NA, NA, NA~

:: Merge

df_matriculas %>% 
  inner_join(df_alunos, by = "numero_matricula_aluno") %>% 
  glimpse()
df_v_rank %>% 
  inner_join(df_v_notas) %>% 
  glimpse()