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)
