Primeiro carregue os seguintes pacotes:
suppressMessages(library(tidyverse))
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())
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")
# Quantidade de cursos de estatistica no brasil
estatistica.br <- ces16.curso %>%
filter(NO_OCDE=="Estatística") %>%
select(NO_REGIAO_CURSO,SGL_UF_CURSO,DS_CATEGORIA_ADMINISTRATIVA,NO_IES) %>%
group_by(NO_REGIAO_CURSO,SGL_UF_CURSO,DS_CATEGORIA_ADMINISTRATIVA,NO_IES) %>%
summarise(quantidade = n())
# Cursos de estatística no brasil de acordo com a região
estatistica.br %>%
group_by(NO_REGIAO_CURSO) %>%
summarise(quantidade = n()) %>%
arrange(desc(quantidade)) %>%
transform(NO_REGIAO_CURSO = factor(NO_REGIAO_CURSO, levels = NO_REGIAO_CURSO)) %>%
ggplot(aes(NO_REGIAO_CURSO, quantidade, fill = NO_REGIAO_CURSO)) +
geom_bar(stat = "identity") +
guides(fill = "none") +
labs(x = "Região", y = "Quantidade de cursos", title = "Cursos de Estatística no Brasil") +
scale_fill_brewer(palette = "YlOrRd", direction = -1)