library(readr)
library(tm)
## Loading required package: NLP
library(tidytext)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:NLP':
## 
##     annotate
pessoal <- read_csv("dados_pessoal.csv", col_types = cols(
  id = col_double(),
  idade = col_double(),
  genero = col_character(),
  cargo = col_character(),
  nivel = col_character(),
  id_projeto = col_double(),
  ai = col_logical(),
  cloud = col_logical(),
  database = col_logical(),
  design = col_logical(),
  iot = col_logical(),
  game_dev = col_logical(),
  mobile = col_logical(),
  analytics = col_logical(),
  web = col_logical(),
  management = col_logical()
))
head(pessoal)
## # A tibble: 6 x 16
##      id idade genero cargo nivel id_projeto ai    cloud database design
##   <dbl> <dbl> <chr>  <chr> <chr>      <dbl> <lgl> <lgl> <lgl>    <lgl> 
## 1     1    25 M      Dese~ Juni~         10 FALSE FALSE TRUE     FALSE 
## 2     2    25 M      Desi~ Juni~         14 FALSE FALSE FALSE    TRUE  
## 3     3    37 M      Test~ Seni~         15 FALSE FALSE TRUE     FALSE 
## 4     4    32 M      Dese~ Seni~         10 FALSE TRUE  TRUE     TRUE  
## 5     5    29 M      Desi~ Juni~          4 FALSE TRUE  TRUE     TRUE  
## 6     6    35 M      Tech~ Espe~          2 TRUE  FALSE TRUE     TRUE  
## # ... with 6 more variables: iot <lgl>, game_dev <lgl>, mobile <lgl>,
## #   analytics <lgl>, web <lgl>, management <lgl>
summary(pessoal)
##        id             idade          genero             cargo          
##  Min.   :  1.00   Min.   :21.00   Length:204         Length:204        
##  1st Qu.: 51.75   1st Qu.:27.00   Class :character   Class :character  
##  Median :102.50   Median :29.00   Mode  :character   Mode  :character  
##  Mean   :102.50   Mean   :30.82                                        
##  3rd Qu.:153.25   3rd Qu.:34.00                                        
##  Max.   :204.00   Max.   :54.00                                        
##     nivel             id_projeto         ai            cloud        
##  Length:204         Min.   : 1.000   Mode :logical   Mode :logical  
##  Class :character   1st Qu.: 4.000   FALSE:147       FALSE:144      
##  Mode  :character   Median : 8.000   TRUE :57        TRUE :60       
##                     Mean   : 7.995                                  
##                     3rd Qu.:11.250                                  
##                     Max.   :15.000                                  
##   database         design           iot           game_dev      
##  Mode :logical   Mode :logical   Mode :logical   Mode :logical  
##  FALSE:121       FALSE:159       FALSE:153       FALSE:178      
##  TRUE :83        TRUE :45        TRUE :51        TRUE :26       
##                                                                 
##                                                                 
##                                                                 
##    mobile        analytics          web          management     
##  Mode :logical   Mode :logical   Mode :logical   Mode :logical  
##  FALSE:141       FALSE:115       FALSE:119       FALSE:175      
##  TRUE :63        TRUE :89        TRUE :85        TRUE :29       
##                                                                 
##                                                                 
## 
projetos <- read_csv("dados_projetos.csv", col_types = cols(
  id_projeto = col_double(),
  risco = col_character(),
  area_central = col_character()
))
head(projetos)
## # A tibble: 6 x 3
##   id_projeto risco   area_central
##        <dbl> <chr>   <chr>       
## 1          1 alto    data science
## 2          2 alto    ai          
## 3          3 regular ai          
## 4          4 regular web         
## 5          5 medio   web         
## 6          6 regular cloud
summary(projetos)
##    id_projeto      risco           area_central      
##  Min.   : 1.0   Length:15          Length:15         
##  1st Qu.: 4.5   Class :character   Class :character  
##  Median : 8.0   Mode  :character   Mode  :character  
##  Mean   : 8.0                                        
##  3rd Qu.:11.5                                        
##  Max.   :15.0
freq_genero = table(pessoal$genero)
percentlabels<- round(100*freq_genero/sum(freq_genero), 1)
pielabels<- paste(percentlabels, "%", sep="")
lbls <- c("Feminino", "Masculino")
pielabels <- paste(lbls, pielabels)
pie(freq_genero, main="Figura 2 - Distribuição por Gênero", col=rainbow(length(freq_genero)), labels=pielabels, cex=0.8)

pessoal$genero <- as.factor(pessoal$genero)
ggplot(pessoal, aes(x = idade, colour = genero)) + geom_freqpoly(binwidth = 1) + labs(title = "Figura 3 - Faixa etária por gênero", x="Idade", y = "Frequência") + scale_color_brewer(name = "Gênero", palette = "Set1")

pessoal %>% 
  ggplot(aes(x = nivel, fill = genero)) +
    geom_bar(stat = "count") + labs(title = "Figura 4 - Nível de especialização X Gênero", x="Nível", y = "Frequência", fill = "Gênero")

positions <- c("Desenvolvedor", "Tester", "Designer", "Analista de dados", "Gerente", "Tech Leader")
pessoal %>% 
  ggplot(aes(x = cargo, fill = nivel)) +
    geom_bar(stat = "count") + scale_x_discrete(limits = positions) + coord_flip() + labs(title = "Figura 5 - Nível de especialização por cargo", x="Frequência", y = "Cargo", fill = "Nível")

pessoal %>% 
  ggplot(aes(x = nivel, fill = genero)) +
    geom_bar(stat = "count") + facet_wrap(~id_projeto)  + coord_flip() + labs(title = "Figura 6 - Nível de especialização e gênero por projeto", x="Nível", y = "Frequência", fill = "Gênero")

freq_risco = table(projetos$risco)
percentlabels<- round(100*freq_risco/sum(freq_risco), 1)
pielabels<- paste(percentlabels, "%", sep="")
lbls <- c("Alto", "Médio", "Regular")
pielabels <- paste(lbls, pielabels)
pie(freq_risco, main="Figura 7 - Distribuição dos Projetos por nível de risco", col=rainbow(length(freq_risco)), labels=pielabels, cex=0.8)