Row

Целевой департамент

R&D

Верхнаяя граница количества лет работы в компании

9 лет

Разница в относительном оттоке по сравнению с показателем во всей выборке

6.5%

Row

Интерактивный график

Текстом выделены проблемные сотрудники компании

Row

Сокращение оттока после улучшения условий работы

23.5%

Требуется для достижения повышения З/П

66051

Финальный эффект от двух предлагаемых решений

35.3%
---
title: "Отчет о работе с сотрудниками исследуемой подгруппы"
output: 
  flexdashboard::flex_dashboard:
    theme: flatly
    source_code: embed
    orientation: rows
---

```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(plotly)
library(wordcloud2)
library(crosstalk)
library(tidyverse)
library(plotly)
library(DBI)
library(RMariaDB)
library(tidymodels)
library(rpart.plot)
con <- dbConnect(RMariaDB::MariaDB(), 
                 user='studentminor', 
                 password='DataMinorHSE!2020', 
                 dbname='employee', 
                 host='34.88.193.134',
                 port = 3306)
rd2021 <- read.csv("~/RD2021.csv")
ddata = rd2021 %>% dplyr::select(JobRole, Attrition) %>% count(JobRole, Attrition) %>% mutate(Attrition = ifelse(Attrition==0, 'Остался', 'Ушел'))
ddata <- SharedData$new(ddata)
```

Inputs {.sidebar}
-------------------------------------

```{r}
filter_select('JobRole', 'Должность', ddata, ~JobRole)
filter_select("Attrition", "Отток", ddata, ~Attrition)
filter_slider("n", "Количество", ddata, ~n)
```

Row {data-height=200}
-------------------------------------

### Целевой департамент

```{r}
value1 = 'R&D'
valueBox(value1, icon = "fas fa-flask", color = "primary")
```

### Верхнаяя граница количества лет работы в компании

```{r}
value2 = rd2021$YearsAtCompany %>% max()
valueBox(paste(as.character(value2), 'лет', sep  =' '), icon = "far fa-id-badge", color = "primary")
```

### Разница в относительном оттоке по сравнению с показателем во всей выборке

```{r}
v  = rd2021 %>% count(Attrition)
f = dbGetQuery(con, "SELECT Attrition, COUNT(*) AS n FROM portfolio GROUP BY Attrition")
num = round(v[2,2]/(v[1,2]+v[2,2]) - f[1,2]/(f[1,2]+f[2,2]),3)*100
value3 = paste(as.character(num), "%", sep="")
valueBox(value3)
```

Row {data-height=500}
-------------------------------------

### Интерактивный график


```{r}
ddata %>% plot_ly(x = ~as.factor(JobRole), y = ~as.numeric(n), color = ~as.factor(Attrition),
            colors = c("#C0C0C0", "#990000"),
            type = 'bar', hoverinfo = 'y', opacity = 0.8) %>% 
  layout(title = "Отток сотрудников компании в зависимости от должности",
         xaxis = list(title = "Специальности"),
         yaxis = list(title = "Кол-во"))
```


### Текстом выделены проблемные сотрудники компании

```{r}
data = rd2021 %>% count(OverTime, JobRole) %>% filter(OverTime == 'Yes') %>% select(-OverTime) %>% arrange(-n)
data1 = data
library(ggplot2)
data[3:6,1] = c('','','', '')



# Compute percentages
data$fraction <- data$n / sum(data$n)

# Compute the cumulative percentages (top of each rectangle)
data$ymax <- cumsum(data$fraction)

# Compute the bottom of each rectangle
data$ymin <- c(0, head(data$ymax, n=-1))

# Compute label position
data$labelPosition <- (data$ymax + data$ymin) / 2


# Compute a good label
data$label <- paste0(data$JobRole)

# Make the plot
ggplot(data, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=3, fill=data1$JobRole)) +
  geom_rect() +
  geom_text( x=2, aes(y=labelPosition, label=label),color = 'black', size=3 )+ # x here controls label position (inner / outer)
  scale_fill_brewer(palette= 'Reds') +
  scale_color_brewer(palette=2) +
  coord_polar(theta="y") +
  xlim(c(-1, 4)) +
  theme_void() +
  theme(legend.position = "none") + labs(title= "Доля специлистов R&D с фактом наличия доп.часов работы")
```


   
Row {data-height=200}
-------------------------------------


### Сокращение оттока после улучшения условий работы


```{r}
first.test <- read.csv("~/first_stage.csv")
init.test <- read.csv("~/init_test.csv")

value = round(((init.test[2,3]-first.test[2,3])/init.test[2,3])*100,1)
value4 = paste(value, "%", sep="")
valueBox(value4, icon = 'fas fa-chart-line',color = '#3CB371')
```



### Требуется для достижения повышения З/П
```{r}
data_5 = read.csv('~/to_pay.csv')
value5 = data_5[1,2]
valueBox(value5, icon = "fas fa-dollar-sign", color = '#3CB371')
```



### Финальный эффект от двух предлагаемых решений
```{r}
fin.test <- read.csv("~/fin_test.csv")

value = round(((init.test[2,3]-fin.test[2,3])/init.test[2,3])*100,1)
value6 = paste(value, "%", sep="")
valueBox(value6, icon = 'fas fa-chart-line' ,color = '#3CB371')
```


```{r}
dbDisconnect(con)
```