## Script 1 · Organizando a base de dados --------------------------------------
## Prof. Wagner Hugo Bonat · Ômega Data Academy --------------------------------
## Data: 27/10/2022 ------------------------------------------------------------
## Imersão Ômega · Portfólio ---------------------------------------------------

## Carregando pacotes adicionais
library(dplyr)
library(readr)
library(ggplot2)
library(stringr)
library(plotly)
library(reactable)
library(DT)

## Carregando a base de dados
url <- "http://www.leg.ufpr.br/~wagner/data/Data_Science_Fields_Salary_Categorization.csv"
dados <- read_csv(url)

View(dados)

## Classificando as variáveis --------------------------------------------------

# Working_Year - Qualitativa ordinal
dados$Working_Year <- factor(dados$Working_Year, 
                             levels = c("2020", "2021", "2022"))

# Designation - Qualitativa nominal
dados$Designation <- as.factor(dados$Designation)

# Experience - Qualitativa ordinal
dados$Experience <- factor(dados$Experience, 
                           levels = c("EN", "MI", "SE", "EX"))

# Exployment_Status - Qualitativa nomial
dados$Employment_Status <- as.factor(dados$Employment_Status)

# Salary_In_Rupees - Quantitativa contínua
dados$Salary_In_Rupees <- str_remove_all(dados$Salary_In_Rupees, ",")
dados$Salary_In_Rupees <- as.numeric(dados$Salary_In_Rupees)*0.065
dados$Salary_In_Rupees <- dados$Salary_In_Rupees/12

# Employee_Location - Qualitativa nominal
dados$Employee_Location <- as.factor(dados$Employee_Location)

# Company_Location - Qualitativa nominal
dados$Company_Location <- as.factor(dados$Company_Location)

# Company_Size - Qualitativa ordinal
dados$Company_Size <- factor(dados$Company_Size, levels = c("S", "M", "L"))

# Remote_Working_Ratio - Quanlitativa ordinal
dados$Remote_Working_Ratio <- factor(dados$Remote_Working_Ratio, 
                                     levels = c("0", "50", "100"))

## Estatística descritiva ------------------------------------------------------

# Medidas univariadas (olhando variável por variável)

# Working_Year
ggplot(dados) +
  geom_bar(aes(Working_Year))


## Designation
ggplot(dados) +
  geom_bar(aes(Designation))

## Melhorando o aspecto do gráfico
# Ordenar por frequencia
ordem <- dados %>%
  group_by(Designation) %>%
  summarize("N" = n()) %>%
  arrange(N) %>%
  select(Designation)
dados$Designation <- factor(dados$Designation, levels = ordem$Designation)

ggplot(dados) +
  geom_bar(aes(Designation)) +
  coord_flip()

## Experience
ggplot(dados) +
  geom_bar(aes(Experience))

## Employment_Status
ggplot(dados) +
  geom_bar(aes(Employment_Status))

## Salary
ggplot(dados) +
  geom_histogram(aes(Salary_In_Rupees))

## Employee_Location
ggplot(dados) +
  geom_bar(aes(Employee_Location))

ordem <- dados %>%
  group_by(Employee_Location) %>%
  summarize("N" = n()) %>%
  arrange(N) %>%
  select(Employee_Location)
dados$Employee_Location <- factor(dados$Employee_Location, levels = ordem$Employee_Location)

ggplot(dados) +
  geom_bar(aes(Employee_Location)) +
  coord_flip()

## Company_Location
ggplot(dados) +
  geom_bar(aes(Company_Location))

ordem <- dados %>%
  group_by(Company_Location) %>%
  summarize("N" = n()) %>%
  arrange(N) %>%
  select(Company_Location)
dados$Company_Location <- factor(dados$Company_Location, levels = ordem$Company_Location)

ggplot(dados) +
  geom_bar(aes(Company_Location)) +
  coord_flip()

## Company size
ggplot(dados) +
  geom_bar(aes(Company_Size))

## Remote_Working_Ration
ggplot(dados) +
  geom_bar(aes(Remote_Working_Ratio))


## Análise bivariada -----------------------------------------------------------
## O que faz com que o salário mude?

# Working_Year
ggplot(dados) +
  geom_boxplot(aes(x = Working_Year, y = Salary_In_Rupees))


## Designation
ggplot(dados) +
  geom_boxplot(aes(x = Designation, y = Salary_In_Rupees)) +
  coord_flip()

# Melhorando o aspecto do gráfico
ordem <- dados %>%
  group_by(Designation) %>%
  summarize("Mediana" = median(Salary_In_Rupees)) %>%
  arrange(desc(Mediana)) %>%
  select(Designation)
dados$Designation <- factor(dados$Designation, levels = ordem$Designation)

ggplot(dados) +
  geom_boxplot(aes(x = Designation, y = Salary_In_Rupees)) +
  coord_flip()

## Experience
ggplot(dados) +
  geom_boxplot(aes(x = Experience, y = Salary_In_Rupees))

## Employment_Status
ggplot(dados) +
  geom_boxplot(aes(x = Employment_Status, y = Salary_In_Rupees))

## Employee_Location
ordem <- dados %>%
  group_by(Employment_Status) %>%
  summarize("Mediana" = median(Salary_In_Rupees)) %>%
  arrange(Mediana) %>%
  select(Employment_Status)
dados$Employment_Status <- factor(dados$Employment_Status, levels = ordem$Employment_Status)

ggplot(dados) +
  geom_boxplot(aes(x = Employment_Status, y = Salary_In_Rupees))

## Employee_Location
ordem <- dados %>%
  group_by(Employee_Location) %>%
  summarize("Mediana" = median(Salary_In_Rupees)) %>%
  arrange(Mediana) %>%
  select(Employee_Location)
dados$Employee_Location <- factor(dados$Employee_Location, 
                                  levels = ordem$Employee_Location)

ggplot(dados) +
  geom_boxplot(aes(x = Employee_Location, y = Salary_In_Rupees)) +
  coord_flip()

## Company_Location
ordem <- dados %>%
  group_by(Company_Location) %>%
  summarize("Mediana" = median(Salary_In_Rupees)) %>%
  arrange(Mediana) %>%
  select(Company_Location)
dados$Company_Location <- factor(dados$Company_Location, 
                                  levels = ordem$Company_Location)

ggplot(dados) +
  geom_boxplot(aes(x = Company_Location, y = Salary_In_Rupees)) +
  coord_flip()


## Company_Size
ggplot(dados) +
  geom_boxplot(aes(x = Company_Size, y = Salary_In_Rupees))

## Company_Size
ggplot(dados) +
  geom_boxplot(aes(x = Remote_Working_Ratio, y = Salary_In_Rupees))

## Elementos para melhorar a sua análise/relatório -----------------------------

## Gráficos interativos
plt1 <- ggplot(dados) +
  geom_boxplot(aes(x = Remote_Working_Ratio, y = Salary_In_Rupees))
ggplotly(plt1)

## Tabelas interativas
reactable(data.frame(table(dados$Designation)))

## Outra opção
datatable(data.frame(table(dados$Designation)))


