Objetivo: Calculo da idade dos professores - Censo de educação superior 2016

Microdados do INEP: http://inep.gov.br/microdados

library(readr)
library(tidyverse)
## ── Attaching packages ───────────────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 2.2.1     ✔ purrr   0.2.4
## ✔ tibble  1.3.4     ✔ dplyr   0.7.4
## ✔ tidyr   0.8.0     ✔ stringr 1.3.0
## ✔ ggplot2 2.2.1     ✔ forcats 0.2.0
## ── Conflicts ──────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
ies <- read_delim("DM_IES.CSV", "|", escape_double = FALSE, 
                  locale = locale(encoding = "ISO-8859-1"), 
                  trim_ws = TRUE)
## Parsed with column specification:
## cols(
##   .default = col_integer(),
##   NO_IES = col_character(),
##   SGL_IES = col_character(),
##   NO_MANTENEDORA = col_character(),
##   DS_CATEGORIA_ADMINISTRATIVA = col_character(),
##   DS_ORGANIZACAO_ACADEMICA = col_character(),
##   NO_MUNICIPIO_IES = col_character(),
##   SGL_UF_IES = col_character(),
##   NO_REGIAO_IES = col_character(),
##   VL_RECEITA_PROPRIA = col_double(),
##   VL_TRANSFERENCIA = col_double(),
##   VL_OUTRA_RECEITA = col_double(),
##   VL_DES_PESSOAL_REM_DOCENTE = col_double(),
##   VL_DES_PESSOAL_REM_TECNICO = col_double(),
##   VL_DES_PESSOAL_ENCARGO = col_double(),
##   VL_DES_CUSTEIO = col_double(),
##   VL_DES_INVESTIMENTO = col_double(),
##   VL_DES_PESQUISA = col_double(),
##   VL_DES_OUTRAS = col_double()
## )
## See spec(...) for full column specifications.
docentes <- read_delim("DM_DOCENTE.CSV", 
                       "|", escape_double = FALSE, locale = locale(encoding = "ISO-8859-1"), 
                       trim_ws = TRUE)
## Parsed with column specification:
## cols(
##   .default = col_integer(),
##   NO_IES = col_character(),
##   DS_CATEGORIA_ADMINISTRATIVA = col_character(),
##   DS_ORGANIZACAO_ACADEMICA = col_character(),
##   CO_DOCENTE = col_double(),
##   DS_SITUACAO_DOCENTE = col_character(),
##   DS_ESCOLARIDADE_DOCENTE = col_character(),
##   DS_REGIME_TRABALHO = col_character(),
##   DS_SEXO_DOCENTE = col_character(),
##   DS_COR_RACA_DOCENTE = col_character(),
##   DS_NACIONALIDADE_DOCENTE = col_character(),
##   IN_VISITANTE_IFES_VINCULO = col_character()
## )
## See spec(...) for full column specifications.
ies_1 <- ies %>% select(CO_IES:SGL_UF_IES, starts_with("VL_"))


docentes_1 <- docentes %>% select(CO_IES, CO_DOCENTE_IES, IN_SEXO_DOCENTE, DS_ESCOLARIDADE_DOCENTE)


ies_2 <- ies_1 %>% gather(key = TIPO, value = VALOR, -CO_IES:-SGL_UF_IES)


ies_3 <- ies_2 %>% group_by(CO_IES, NO_IES, DS_CATEGORIA_ADMINISTRATIVA, SGL_UF_IES) %>% 
  summarise(total = sum(VALOR)/1000000)


base <- ies_3 %>% right_join(docentes_1, by = "CO_IES") %>% ungroup()


base %>% 
  group_by(NO_IES, total, DS_ESCOLARIDADE_DOCENTE) %>% 
  summarise(N = n()) %>% 
  mutate(media = total/N)
## # A tibble: 7,193 x 5
## # Groups:   NO_IES, total [2,400]
##                                                          NO_IES      total
##                                                           <chr>      <dbl>
##  1 "\"FACULDADE DE COMUNICAÇÃO E DESIGN \"\"OSWALDO CRUZ\"\"\""   2.762263
##  2 "\"FACULDADE DE COMUNICAÇÃO E DESIGN \"\"OSWALDO CRUZ\"\"\""   2.762263
##  3 "\"FACULDADE DE COMUNICAÇÃO E DESIGN \"\"OSWALDO CRUZ\"\"\""   2.762263
##  4                                  ABEU - CENTRO UNIVERSITÁRIO  76.565968
##  5                                  ABEU - CENTRO UNIVERSITÁRIO  76.565968
##  6                                  ABEU - CENTRO UNIVERSITÁRIO  76.565968
##  7                          Academia Militar das Agulhas Negras 273.653477
##  8                          Academia Militar das Agulhas Negras 273.653477
##  9                          Academia Militar das Agulhas Negras 273.653477
## 10                          Academia Militar das Agulhas Negras 273.653477
## # ... with 7,183 more rows, and 3 more variables:
## #   DS_ESCOLARIDADE_DOCENTE <chr>, N <int>, media <dbl>
idade <- 2018 - docentes$NU_ANO_DOCENTE_NASC 
docentes_2 <- docentes %>% mutate(idade = 2018 - NU_ANO_DOCENTE_NASC + NU_MES_DOCENTE_NASC/12 + NU_DIA_DOCENTE_NASC/365 ) %>% select(NO_IES, idade, DS_ESCOLARIDADE_DOCENTE, DS_SEXO_DOCENTE)

summary(idade)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   22.00   38.00   45.00   46.24   54.00  100.00
 ggplot(docentes_2, aes(x = idade, color = DS_ESCOLARIDADE_DOCENTE)) +
   geom_density()

 ggplot(docentes_2, aes(x = DS_SEXO_DOCENTE, y = idade, color = DS_ESCOLARIDADE_DOCENTE)) +
   geom_boxplot()

 # Filtrando Universidade Federal de Pernambuco
 
 docentes_2 %>% filter(NO_IES == "UNIVERSIDADE FEDERAL DE PERNAMBUCO") %>%  
 ggplot(aes(x = idade, color = DS_ESCOLARIDADE_DOCENTE)) +
  geom_density()

docentes_2 %>% filter(NO_IES == "UNIVERSIDADE FEDERAL DE PERNAMBUCO") %>%
ggplot(aes(x = DS_SEXO_DOCENTE, y = idade, color = DS_ESCOLARIDADE_DOCENTE)) +
  geom_boxplot()