Primeiro carregue os seguintes pacotes:

suppressMessages(library(tidyverse))

Como importar Microdados

Para esta aula iremos utilizar bases de dados abertas atraves do site do inep

Para carregar os dados para o R use:

# Formato dos objetos dos datasets:
# cesaa.tipo; aa = ano ex: 2016 = 16; tipo: curso;docente;etc
suppressMessages(ces16.curso <- readRDS("Estatistica_computacional/ces16.curso.rds"))

# Criando data.frame com as seguintes informações:
# UF dos cursos e o tipo de categoria administrativa
# Código referente a cada tipo de categoria adm. (CO_CATEGORIA_ADMINISTRATIVA)
# 1 = publica federal
# 2 = publica estadual
# 3 = publica municipal
# 4 = privada com fins lucrativos
# 5 = privada sem fins lucrativos
# 7 = especial

uf.tipo.curso <- ces16.curso %>% mutate(pm = if_else(CO_CATEGORIA_ADMINISTRATIVA==3,1,0),
                                 pe = if_else(CO_CATEGORIA_ADMINISTRATIVA==2,1,0),
                                 pf = if_else(CO_CATEGORIA_ADMINISTRATIVA==1,1,0),
                                 pcfl = if_else(CO_CATEGORIA_ADMINISTRATIVA==4,1,0),
                                 psfl = if_else(CO_CATEGORIA_ADMINISTRATIVA==5,1,0),
                                 esp = if_else(CO_CATEGORIA_ADMINISTRATIVA==7,1,0),
                                 pm = as.integer(pm),
                                 pe = as.integer(pe),
                                 pf = as.integer(pf),
                                 pcfl = as.integer(pcfl),
                                 esp = as.integer(esp),
                                 psfl = as.integer(psfl)) %>%
  group_by(SGL_UF_CURSO) %>% summarise(publica.mun = sum(pm),
                                       publica.est = sum(pe),
                                       publica.fed = sum(pf),
                                       priv.com.fins.luc = sum(pcfl),
                                       priv.sem.fins.luc = sum(psfl),
                                       especial = sum(esp),
                                       total = n())

Tabelas Estilizadas

Agora vamos fazer tabelas estilizadas em nosso relatório. Para isso vamos instalar o pacote kableExtra.

#devtools::install_github("haozhu233/kableExtra")
library(knitr)
library(kableExtra)
# Tabela estilizada para a tabela que criamos anteriormente
uf.tipo.curso %>%
  kable("html") %>%
  # bootstrap_options muda caracteristicas da tabela
  # striped alterna as cores de cada linha
  # hover da um relevo ao passar o mouse por cima
  # full_width comprime as colunas
  kable_styling(bootstrap_options = c("striped", "hover", full_width = F)) %>% 
  # row_spec muda as caracteristicas das linhas selecionadas
  row_spec(row = 16 , background = "#41AB5D")
SGL_UF_CURSO publica.mun publica.est publica.fed priv.com.fins.luc priv.sem.fins.luc especial total
AC 0 0 69 49 6 0 124
AL 0 69 105 101 91 0 366
AM 0 321 122 166 135 0 744
AP 0 12 52 64 26 0 154
BA 0 344 303 818 231 0 1696
CE 0 122 231 389 160 0 902
DF 0 4 165 257 308 0 734
ES 9 4 154 203 287 0 657
GO 4 141 264 333 287 66 1095
MA 0 255 153 202 82 0 692
MG 4 171 839 989 1362 0 3365
MS 0 60 174 101 180 0 515
MT 0 74 158 232 171 0 635
PA 0 101 292 272 108 0 773
PB 0 57 226 183 68 0 534
PE 84 56 192 359 270 16 977
PI 0 133 126 183 51 0 493
PR 17 413 382 938 646 13 2409
RJ 5 124 529 688 1154 2 2502
RN 0 84 185 165 56 0 490
RO 0 0 78 111 129 0 318
RR 0 24 55 30 3 0 112
RS 0 63 588 398 1348 0 2397
SC 8 53 211 309 701 179 1461
SE 0 0 117 155 21 0 293
SP 112 832 264 3098 3881 153 8340
TO 22 13 95 52 71 0 253
NA 2 111 296 671 544 40 1664
# gráfico legal
# Escolhendo so PE
pe <- ces16.curso %>%
  filter(NO_REGIAO_CURSO=="Nordeste"&SGL_UF_CURSO=="PE") %>% 
  select(DS_CATEGORIA_ADMINISTRATIVA) %>% 
  group_by(categoria.adm = DS_CATEGORIA_ADMINISTRATIVA) %>%
  summarise(quantidade = n()) %>%
  arrange(desc(quantidade)) %>% 
  mutate(percentual = scales::percent(quantidade/sum(quantidade)),
         categoria.adm = factor(categoria.adm, levels = categoria.adm))

pe %>%
  kable("html") %>%
  # bootstrap_options muda caracteristicas da tabela
  # striped alterna as cores de cada linha
  # hover da um relevo ao passar o mouse por cima
  # full_width comprime as colunas
  kable_styling(bootstrap_options = c("striped", "hover", full_width = F))
categoria.adm quantidade percentual
Privada com fins lucrativos 359 36.7%
Privada sem fins lucrativos 270 27.6%
Pública Federal 192 19.7%
Pública Municipal 84 8.6%
Pública Estadual 56 5.7%
Especial 16 1.6%
pe %>%  ggplot(aes(reorder(categoria.adm, quantidade),
                   quantidade,
                   fill = categoria.adm)) +
  # stat em geom_bar diz qual estatistica utilizar para fazer as barras
  geom_bar(stat = "identity") +
  guides(fill = "none") +
  # coord_flip deixa o grafico na horizontal
  coord_flip() +
  # labs muda tudo referente a titulos e afins
  labs(x = "Categoria",
       title = "Número de instituições por tipo de categoria",
       subtitle = "Estado de Pernambuco") +
  ## geom_label muda caracteristicas dos labels
  ## em geom-label como estamos trabalhando em aes,
  ## iremos mudar as caracteristicas desse argumento
  # paste cria uma string
  geom_label(aes(label = paste(quantidade,percentual, sep = "\n"))) +
  # muda a cor das barras
  scale_fill_brewer(palette = "Greens", direction = -1)

Agora vamos comparar PE com a PB.

pe.pb <- ces16.curso %>%
  filter(NO_REGIAO_CURSO=="Nordeste"&(SGL_UF_CURSO=="PE"|SGL_UF_CURSO=="PB")) %>% 
  select(DS_CATEGORIA_ADMINISTRATIVA,SGL_UF_CURSO) %>% 
  rename(categoria.adm = DS_CATEGORIA_ADMINISTRATIVA, estado = SGL_UF_CURSO) %>%
  group_by(estado,categoria.adm) %>% 
  summarise(quantidade = n()) %>% 
  mutate(percentual = scales::percent(quantidade/sum(quantidade)))

pe.pb %>%
  kable("html") %>% 
  # bootstrap_options muda caracteristicas da tabela
  # striped alterna as cores de cada linha
  # hover da um relevo ao passar o mouse por cima
  # full_width comprime as colunas
  kable_styling(bootstrap_options = c("striped", "hover", full_width = F))
estado categoria.adm quantidade percentual
PB Privada com fins lucrativos 183 34.3%
PB Privada sem fins lucrativos 68 12.7%
PB Pública Estadual 57 10.7%
PB Pública Federal 226 42.3%
PE Especial 16 1.6%
PE Privada com fins lucrativos 359 36.7%
PE Privada sem fins lucrativos 270 27.6%
PE Pública Estadual 56 5.7%
PE Pública Federal 192 19.7%
PE Pública Municipal 84 8.6%
# Meu jeito
pe.pb %>%  ggplot(aes(reorder(categoria.adm, quantidade),
                   quantidade,
                   fill = categoria.adm)) +
  # stat em geom_bar diz qual estatistica utilizar para fazer as barras
  geom_bar(stat = "identity") +
  guides(fill = "none") +
  # coord_flip deixa o grafico na horizontal
  coord_flip() +
  # labs muda tudo referente a titulos e afins
  labs(x = "Categoria",
       title = "Número de instituições por tipo de categoria",
       subtitle = "Estado de Pernambuco") +
  ## geom_label muda caracteristicas dos labels
  ## em geom-label como estamos trabalhando em aes,
  ## iremos mudar as caracteristicas desse argumento
  # paste cria uma string
  geom_label(aes(label = paste(quantidade,percentual, sep = "\n"))) +
  # muda a cor das barras
  scale_fill_brewer(palette = "Greens") + 
  facet_grid(~estado)

# Jeito do professor
pe.pb %>%  ggplot(aes(reorder(categoria.adm, quantidade),
                   quantidade,
                   fill = estado)) +
  # stat em geom_bar diz qual estatistica utilizar para fazer as barras
  geom_bar(stat = "identity", position = "dodge") +
  # coord_flip deixa o grafico na horizontal
  coord_flip() +
  # labs muda tudo referente a titulos e afins
  labs(x = "Categoria",
       title = "Número de instituições por tipo de categoria",
       subtitle = "Estados de Pernambuco da Paraíba") +
  ## geom_label muda caracteristicas dos labels
  ## em geom-label como estamos trabalhando em aes,
  ## iremos mudar as caracteristicas desse argumento
  # paste cria uma string
  geom_label(aes(label = paste(quantidade,percentual, sep = " - ")),
                              position = position_dodge(0.99), size = 2.1) +
  # muda a cor das barras
  scale_fill_brewer(palette = "Greens")