Vamos importar a base de dados do INEP http://inep.gov.br/web/guest/microdados usando o pacote readr
Nessa aula vamos usar o Censo da Educação Superior no ano de 2016
library(readr)
# Base2 <- read_delim("DM_DOCENTE.CSV",
# "|", escape_double = FALSE, col_types = cols(CO_DOCENTE_IES = col_character()),
# locale = locale(encoding = "ISO-8859-1"),
# trim_ws = TRUE)
# library(readr)
# BancoDados <- read_delim("DM_DOCENTE.CSV",
# "|", escape_double = FALSE, col_types = cols(CO_CATEGORIA_ADMINISTRATIVA = col_character(),
# CO_COR_RACA_DOCENTE = col_character(),
# CO_DOCENTE = col_character(), CO_DOCENTE_IES = col_character(),
# CO_ESCOLARIDADE_DOCENTE = col_character(),
# CO_IES = col_character(), CO_NACIONALIDADE_DOCENTE = col_character(),
# CO_ORGANIZACAO_ACADEMICA = col_character(),
# CO_PAIS_DOCENTE = col_character(),
# CO_REGIME_TRABALHO = col_character(),
# CO_SITUACAO_DOCENTE = col_character(),
# CO_UF_NASCIMENTO = col_character()),
# locale = locale(encoding = "ISO-8859-1"),
# trim_ws = TRUE)
Abrindo os dados que salvamos no tipo rds, usando o comando readRDS
Base <- readRDS("Aula5/Base2.rds")
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.7.2 ✔ 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()
library(kableExtra)
library(knitr)
library(DT)
Base %>%
select(NO_IES, DS_CATEGORIA_ADMINISTRATIVA, CO_MUNICIPIO_NASCIMENTO) %>%
transmute(Nome = NO_IES,
Categoria = DS_CATEGORIA_ADMINISTRATIVA,
Codigo = as.character(CO_MUNICIPIO_NASCIMENTO)) %>%
mutate(UF= str_sub(string = Codigo, start = 1, end = 2)) %>%
group_by(UF, Categoria) %>%
count() %>%
filter(UF == "26") %>% arrange(desc(n)) %>% kable()
| UF | Categoria | n |
|---|---|---|
| 26 | Pública Federal | 4566 |
| 26 | Privada com fins lucrativos | 3357 |
| 26 | Privada sem fins lucrativos | 3116 |
| 26 | Pública Estadual | 1192 |
| 26 | Pública Municipal | 758 |
| 26 | Especial | 134 |
pernambuco <- Base %>%
select(NO_IES, DS_CATEGORIA_ADMINISTRATIVA,CO_MUNICIPIO_NASCIMENTO ) %>%
transmute( nome= NO_IES,
categoria= DS_CATEGORIA_ADMINISTRATIVA,
codigo = as.character(CO_MUNICIPIO_NASCIMENTO )) %>%
mutate(UF= str_sub( string=codigo,start=1,end=2 ) ) %>%
group_by(UF,categoria) %>%
count() %>%
filter(UF=="26") %>% arrange(desc(n) ) %>% ungroup() %>%
mutate(categoria=factor(categoria, levels=categoria))
pernambuco %>% datatable()
####str(Base2) = exibir
Para selecionar as que queremos analizar utilizamos o comando select, para renomear-lás usamos transmute e quando queremos filtrar apenas um estado, que nesse caso é “Pernambuco” vamos usar o comando filter.
pernambuco %>%
ggplot(aes(x=reorder(categoria,n),y=n, fill= categoria))+
geom_bar(stat = "identity")+ guides(fill="none")+ coord_flip()+
labs(x="Categoria",y="Total", title="Número de Instituicao por Categoria", subtitle="Estado de Pernambuco") +
geom_label(aes(label=n))+ scale_fill_brewer(palette="PuRd")
Para fazer porcentagem:
pernambuco2<- Base %>%
select(NO_IES, DS_CATEGORIA_ADMINISTRATIVA,CO_MUNICIPIO_NASCIMENTO ) %>%
transmute( nome= NO_IES,
categoria= DS_CATEGORIA_ADMINISTRATIVA,
codigo = as.character(CO_MUNICIPIO_NASCIMENTO )) %>%
mutate(UF= str_sub( string=codigo,start=1,end=2 ) ) %>%
group_by(UF,categoria) %>%
summarise(n=n()) %>%mutate(freq=n/sum(n)) %>%
filter(UF=="26") %>% arrange(desc(n))
pernambuco2 %>% datatable()
pernambuco2 %>%
ggplot(aes(x=reorder(categoria,n),y=n, fill= categoria))+
geom_bar(stat = "identity")+ guides(fill="none")+ coord_flip()+
labs(x="categoria",y="total", title="numero de instituicao por categoria",
subtitle="estado de pernambuco") +coord_flip() +
geom_label(aes(label=paste(round(100*freq),"%",sep="")))+scale_fill_brewer(palette="Set2")
Fazendo o mesmo para o estado da Paraíba.
paraiba<- Base %>%
select(NO_IES, DS_CATEGORIA_ADMINISTRATIVA,CO_MUNICIPIO_NASCIMENTO ) %>%
transmute( nome= NO_IES,
categoria= DS_CATEGORIA_ADMINISTRATIVA,
codigo = as.character(CO_MUNICIPIO_NASCIMENTO )) %>%
mutate(UF= str_sub( string=codigo,start=1,end=2 ) ) %>%
group_by(UF,categoria) %>%
summarise(n=n()) %>%mutate(freq=n/sum(n)) %>%
filter(UF=="25") %>% arrange(desc(n))
paraiba %>% datatable()
paraiba %>%
ggplot(aes(x=reorder(categoria,n),y=n, fill= categoria))+
geom_bar(stat = "identity")+ guides(fill="none")+ coord_flip()+
labs(x="Categoria",y="Total", title="Número de Instituicao por Categoria",
subtitle="Estado da Paraíba") +coord_flip() +
geom_label(aes(label=paste(round(100*freq),"%",sep="")))+scale_fill_brewer(palette="Set2")
Juntando os dois estados, Pernambuco e Paraíba.
PE_PB<- Base %>%
select(NO_IES, DS_CATEGORIA_ADMINISTRATIVA,CO_MUNICIPIO_NASCIMENTO ) %>%
transmute( nome= NO_IES,
categoria= DS_CATEGORIA_ADMINISTRATIVA,
codigo = as.character(CO_MUNICIPIO_NASCIMENTO )) %>%
mutate(UF= str_sub( string=codigo,start=1,end=2 ) ) %>%
group_by(UF,categoria) %>%
summarise(n=n()) %>%mutate(freq=n/sum(n)) %>%
filter(UF=="26" | UF== "25") %>% arrange(desc(n))
PE_PB %>% datatable()
##PARA SOMAR O VALOR DA FREQUENCIA
sum(PE_PB$freq)
## [1] 2
Existem varios modelos para o gráfico, por exemplo:
O codigo: mutate(estado=if_else(UF==“26”, “Pernambuco”, “Paraiba”)), é para mudar os nomes dos estados
PE_PB %>% mutate(estado=if_else(UF=="26", "Pernambuco", "Paraiba")) %>% ggplot(aes(x=reorder(categoria,n), y=n, fill= UF))+
geom_bar(stat = "identity")+ coord_flip()
PE_PB %>% mutate(estado=if_else(UF=="26", "Pernambuco", "Paraiba")) %>% ggplot(aes(x=reorder(categoria,n), y=n, fill= UF))+
geom_bar(stat = "identity",position = "dodge" )+ coord_flip()
PE_PB %>% mutate(estado=if_else(UF=="26", "Pernambuco", "Paraiba")) %>% ggplot(aes(x=reorder(categoria,n), y=n, fill= categoria))+
geom_bar(stat = "identity",position = "dodge")+ coord_flip() + facet_wrap(~estado,scales = "free")+guides(fill="none")+
labs(x="categoria",y="total", title="numero de instituicao por categoria",
subtitle="estado ")