library(tidyverse)
library(knitr)
library(kableExtra)
Úloha: Vytvor tabuľku s údajmi o zamestnancoch, ktorá obsahuje premenné Meno, Vek, Plat, Oddelenie.
Meno <- c("Anna", "Ján", "Lucia", "Peter", "Eva")
Vek <- c(28, 35, 41, 30, 26)
Plat <- c(1200, 1450, 1600, 1100, 980)
Oddelenie <- c("Marketing", "IT", "Účtovníctvo", "IT", "Marketing")
zam <- data.frame(Meno, Vek, Plat, Oddelenie)
kable(zam, caption = "Základná databáza zamestnancov") %>%
kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
Meno | Vek | Plat | Oddelenie |
---|---|---|---|
Anna | 28 | 1200 | Marketing |
Ján | 35 | 1450 | IT |
Lucia | 41 | 1600 | Účtovníctvo |
Peter | 30 | 1100 | IT |
Eva | 26 | 980 | Marketing |
Úloha: Z databázy vyber zamestnancov, ktorí pracujú v IT a zoraď ich podľa platu zostupne.
zam %>%
filter(Oddelenie == "IT") %>%
arrange(desc(Plat)) %>%
kable(caption = "Zamestnanci z IT oddelenia podľa platu") %>%
kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
Meno | Vek | Plat | Oddelenie |
---|---|---|---|
Ján | 35 | 1450 | IT |
Peter | 30 | 1100 | IT |
Úloha: Zoskup zamestnancov podľa oddelenia a vypočítaj priemerný plat a priemerný vek v každom oddelení.
zam %>%
group_by(Oddelenie) %>%
summarise(
Priemerny_Plat = mean(Plat),
Priemerny_Vek = mean(Vek),
Pocet = n()
) %>%
kable(caption = "Štatistika podľa oddelenia") %>%
kable_styling(bootstrap_options = c("striped", "hover"), position = "center")
Oddelenie | Priemerny_Plat | Priemerny_Vek | Pocet |
---|---|---|---|
IT | 1275 | 32.5 | 2 |
Marketing | 1090 | 27.0 | 2 |
Účtovníctvo | 1600 | 41.0 | 1 |
Úloha: Zobraz priemerný plat podľa oddelenia pomocou stĺpcového grafu.
zam %>%
group_by(Oddelenie) %>%
summarise(Priemerny_Plat = mean(Plat)) %>%
ggplot(aes(x = Oddelenie, y = Priemerny_Plat, fill = Oddelenie)) +
geom_col() +
labs(
title = "Priemerný plat podľa oddelenia",
x = "Oddelenie",
y = "Priemerný plat (€)"
) +
theme_minimal()
Na základe výšky platu priraď každému zamestnancovi kategóriu:
Zároveň vypočítaj, o koľko percent sa plat každého zamestnanca líši od priemerného platu vo firme.
# výpočet priemerného platu
priemer_plat <- mean(zam$Plat)
# vytváranie nových premenných
zam %>%
mutate(
Kategoria = case_when(
Plat > 1300 ~ "Vysoký plat",
Plat >= 1000 ~ "Stredný plat",
TRUE ~ "Nízky plat"
),
Odchylka_od_priemeru = round((Plat - priemer_plat) / priemer_plat * 100, 1)
) %>%
kable(
caption = "Zamestnanci s kategóriou platu a odchýlkou od priemeru (%)"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover"),
position = "center"
)
Meno | Vek | Plat | Oddelenie | Kategoria | Odchylka_od_priemeru |
---|---|---|---|---|---|
Anna | 28 | 1200 | Marketing | Stredný plat | -5.2 |
Ján | 35 | 1450 | IT | Vysoký plat | 14.5 |
Lucia | 41 | 1600 | Účtovníctvo | Vysoký plat | 26.4 |
Peter | 30 | 1100 | IT | Stredný plat | -13.1 |
Eva | 26 | 980 | Marketing | Nízky plat | -22.6 |