library(readxl)
library(dplyr)
library(ggplot2)
library(knitr)
library(kableExtra)
library(janitor)Práca s databázou
Práca s databázou
Na analýzu bola použitá databáza, ktorá sa zameriava na pracovné podmienky, spokojnosť zamestnancov a ich úmysel odísť zo zamestnania
udaje <- read_excel("HR_Attrition_R_ready_final.xlsx")
udaje <- janitor::clean_names(udaje)
head(udaje)# A tibble: 6 × 20
age gender work_tenure education job_position working_hour
<chr> <chr> <chr> <chr> <chr> <chr>
1 26-35 year Male 3 - 5 years Master's… Senior lect… less than 40
2 26-35 year Female Less than 2 years Bachelor… Lecturer less than 40
3 46-55 year Female more than 5 years Doctorat… Professor 40-45
4 more than 56 year Female more than 5 years Doctorat… Professor 51-55
5 26-35 year Female 3 - 5 years Bachelor… Lecturer 40-45
6 26-35 year Female more than 5 years Master's… Lecturer 40-45
# ℹ 14 more variables: satisfaction_with_workload <dbl>,
# satisfied_compensation <dbl>, good_relationship_with_peers <dbl>,
# satisfied_with_career_and_opportunity <dbl>,
# satisfied_with_job_profession <dbl>, monthly_salary <dbl>,
# satisfied_with_work_life_balance <dbl>, work_is_meaningful <dbl>,
# family_supports <dbl>, mentally_well_and_do_not_have_anxiety <dbl>,
# x1_in_last_3_months_i_am_thinking_of_quitting_from_this_office_organization_dalam_3_bulan_terakhir_saya_berpikir_untuk_berhenti_dari_kantor_organisasi_ini <dbl>, …
Tabuľka respondentov podľa veku
Táto tabuľka zobrazuje počet a percentuálne zastúpenie respondentov v jednotlivých vekových skupinách
tabulka_vek <- udaje %>%
count(age) %>%
mutate(
percento = round(n / sum(n) * 100, 1)
)
tabulka_vek %>%
kable(
format = "html",
escape = FALSE,
caption = "Štruktúra respondentov podľa vekových skupín",
col.names = c(
"<span style='display:block; background-color:#f2b6cf; border:1px solid #d94f8a; padding:6px; text-align:center;'>Veková skupina</span>",
"<span style='display:block; background-color:#f2b6cf; border:1px solid #d94f8a; padding:6px; text-align:center;'>Počet respondentov</span>",
"<span style='display:block; background-color:#f2b6cf; border:1px solid #d94f8a; padding:6px; text-align:center;'>Percento (%)</span>"
),
table.attr = "style='border-collapse:collapse; border:2px solid #d94f8a;'"
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
) %>%
column_spec(1, bold = TRUE)| Veková skupina | Počet respondentov | Percento (%) |
|---|---|---|
| 18-25 year | 66 | 12.5 |
| 26-35 year | 153 | 29.1 |
| 36-45 year | 161 | 30.6 |
| 46-55 year | 106 | 20.2 |
| more than 56 year | 40 | 7.6 |
Náhľad databázy
Na tomto obrázku možno vidieť časť databázy v exceli pred spracovaním v R
Spokojnosť respondentov s finančným ohodnotením v závislosti od veku
Na tomto grafe je zobrazená priemerná spokojnosť s finančným ohodnotením v rámci jednotlivých vekových skupín respondentov
graf_data <- udaje %>%
mutate(
age = factor(
age,
levels = c(
"18-25 year",
"26-35 year",
"36-45 year",
"46-55 year",
"more than 56 year"
)
)
) %>%
group_by(age) %>%
summarise(
priemer_spokojnosti = mean(satisfied_compensation, na.rm = TRUE)
)
ggplot(graf_data, aes(x = age, y = priemer_spokojnosti)) +
geom_col(fill = "#d94f8a") +
labs(
title = "Spokojnosť s finančným ohodnotením podľa vekových skupín",
x = "Veková skupina",
y = "Priemerná spokojnosť"
) +
theme_minimal()Úmysel odísť zo zamestnania
Graf zobrazuje podiel respondentov s úmyslom odísť zo zamestnania v jednotlivých vekových skupinách
toi_vek <- udaje %>%
group_by(age) %>%
summarise(
podiel_toi = mean(toi_turnover_intention, na.mr = TRUE) * 100
)
ggplot(toi_vek, aes(x = age, y = podiel_toi)) +
geom_col(fill = "#f2b6cf") +
labs(
title = "Úmysel odísť zo zamestnania",
x = "Veková skupina",
y = "Podiel respondentov (%)"
) +
theme_minimal()Základná charakteristika databázy
Na záver ešte spravíme základnú deskriptívnu štatistiku použitých premenných
summary(udaje) age gender work_tenure education
Length :526 Length :526 Length :526 Length :526
N.unique : 5 N.unique : 2 N.unique : 3 N.unique : 4
N.blank : 0 N.blank : 0 N.blank : 0 N.blank : 0
Min.nchar: 10 Min.nchar: 4 Min.nchar: 11 Min.nchar: 11
Max.nchar: 17 Max.nchar: 6 Max.nchar: 17 Max.nchar: 34
job_position working_hour satisfaction_with_workload
Length :526 Length :526 Min. :1.000
N.unique : 4 N.unique : 5 1st Qu.:2.000
N.blank : 0 N.blank : 0 Median :4.000
Min.nchar: 8 Min.nchar: 5 Mean :3.382
Max.nchar: 19 Max.nchar: 12 3rd Qu.:4.000
Max. :5.000
satisfied_compensation good_relationship_with_peers
Min. :1.00 Min. :2.00
1st Qu.:3.00 1st Qu.:3.00
Median :3.00 Median :4.00
Mean :3.34 Mean :3.62
3rd Qu.:4.00 3rd Qu.:4.00
Max. :5.00 Max. :5.00
satisfied_with_career_and_opportunity satisfied_with_job_profession
Min. :1.000 Min. :2.000
1st Qu.:3.000 1st Qu.:3.000
Median :4.000 Median :4.000
Mean :3.483 Mean :3.513
3rd Qu.:4.000 3rd Qu.:4.000
Max. :5.000 Max. :5.000
monthly_salary satisfied_with_work_life_balance work_is_meaningful
Min. :1.000 Min. :1.000 Min. :2.000
1st Qu.:2.000 1st Qu.:3.000 1st Qu.:3.000
Median :2.000 Median :4.000 Median :4.000
Mean :2.498 Mean :3.506 Mean :3.671
3rd Qu.:3.000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :4.000 Max. :5.000 Max. :5.000
family_supports mentally_well_and_do_not_have_anxiety
Min. :1.000 Min. :1.000
1st Qu.:3.000 1st Qu.:3.000
Median :4.000 Median :4.000
Mean :3.549 Mean :3.445
3rd Qu.:4.000 3rd Qu.:4.000
Max. :5.000 Max. :5.000
x1_in_last_3_months_i_am_thinking_of_quitting_from_this_office_organization_dalam_3_bulan_terakhir_saya_berpikir_untuk_berhenti_dari_kantor_organisasi_ini
Min. :1.000
1st Qu.:2.000
Median :2.000
Mean :2.637
3rd Qu.:4.000
Max. :5.000
x2_in_last_3_months_i_am_searching_for_an_alternative_job_dalam_3_bulan_terakhir_saya_mencari_alternatif_pekerjaan_lain
Min. :1.000
1st Qu.:2.000
Median :2.000
Mean :2.665
3rd Qu.:4.000
Max. :5.000
x3_in_last_3_months_i_have_low_work_motivation_dalam_3_bulan_terakhir_motivasi_kerja_saya_rendah
Min. :1.000
1st Qu.:2.000
Median :2.000
Mean :2.751
3rd Qu.:4.000
Max. :5.000
toi_turnover_intention
Min. :0.0000
1st Qu.:0.0000
Median :0.0000
Mean :0.3821
3rd Qu.:1.0000
Max. :1.0000
Vybrané pracovné faktory podľa veku
faktory_vek <- udaje %>%
group_by(age) %>%
summarise(
`Pracovná záťaž` = round(mean(satisfaction_with_workload, na.rm = TRUE), 2),
`Finančné ohodnotenie` = round(mean(satisfied_compensation, na.rm = TRUE), 2),
`Vzťahy s kolegami` = round(mean(good_relationship_with_peers, na.rm = TRUE), 2),
`Kariéra a príležitosti` = round(mean(satisfied_with_career_and_opportunity, na.rm = TRUE), 2)
)
faktory_vek %>%
kable(
format = "html",
escape = FALSE,
caption = "Priemerné hodnotenie vybraných faktorov v závislosti od veku",
col.names = c(
"<span style='display:block; background-color:#f2b6cf; padding:6px; text-align:center;'>Veková skupina</span>",
"<span style='display:block; background-color:#f2b6cf; padding:6px; text-align:center;'>Pracovná záťaž</span>",
"<span style='display:block; background-color:#f2b6cf; padding:6px; text-align:center;'>Finančné ohodnotenie</span>",
"<span style='display:block; background-color:#f2b6cf; padding:6px; text-align:center;'>Vzťahy s kolegami</span>",
"<span style='display:block; background-color:#f2b6cf; padding:6px; text-align:center;'>Kariéra a príležitosti</span>"
)
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
)| Veková skupina | Pracovná záťaž | Finančné ohodnotenie | Vzťahy s kolegami | Kariéra a príležitosti |
|---|---|---|---|---|
| 18-25 year | 3.23 | 3.20 | 3.55 | 3.30 |
| 26-35 year | 3.39 | 3.32 | 3.61 | 3.44 |
| 36-45 year | 3.37 | 3.31 | 3.56 | 3.42 |
| 46-55 year | 3.38 | 3.40 | 3.68 | 3.67 |
| more than 56 year | 3.70 | 3.62 | 3.88 | 3.72 |