knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE
)
Ľahký a nadýchaný koláč, ktorý krásne vonia po vanilke a letnom ovocí. Bublanina je klasika slovenskej kuchyne — rýchla na prípravu a ideálna, keď máš po ruke čerstvé čerešne, jahody alebo hocijaké bobuľové ovocie. Skvelá ku káve alebo ako sladká desiata pre celú rodinu
Na prípravu bublaniny budeme potrebovať nasledovné:
Položka = c("cukor", "vajce", "mlieko", "olej", "polohrubá múka", "PDP")
Počet = c(300, 6, 150, 150, 435, 1)
Jednotka = c("g", "ks", "ml", "ml", "g", "ks")
udaje <- data.frame(Položka,Počet,Jednotka)
print(udaje)
## Položka Počet Jednotka
## 1 cukor 300 g
## 2 vajce 6 ks
## 3 mlieko 150 ml
## 4 olej 150 ml
## 5 polohrubá múka 435 g
## 6 PDP 1 ks
Vysvetlenie: DataFrame má tri stĺpce: Položka, Počet a Jednotka. Niektoré operácie s údajmi organizovanými v .data.frame. sú uvedené nasledovne
print(udaje$Položka) # takto adresujeme jednotlivé premenné v data.frame
## [1] "cukor" "vajce" "mlieko" "olej"
## [5] "polohrubá múka" "PDP"
print(udaje[,2:3]) # vypisanie druheho a tretieho stlpca tabulky
## Počet Jednotka
## 1 300 g
## 2 6 ks
## 3 150 ml
## 4 150 ml
## 5 435 g
## 6 1 ks
print(udaje[1,3]) # vypisanie jednej bunky tabulky
## [1] "g"
summary(udaje) # zakladna deskriptivna statistika celej tabulky
## Položka Počet Jednotka
## Length:6 Min. : 1.0 Length:6
## Class :character 1st Qu.: 42.0 Class :character
## Mode :character Median :150.0 Mode :character
## Mean :173.7
## 3rd Qu.:262.5
## Max. :435.0
Rozdelenie surovín na sypké:
Sypké <- c(TRUE, FALSE, FALSE, FALSE, TRUE, TRUE)
udaje <- cbind(udaje,Sypké)
print(udaje)
## Položka Počet Jednotka Sypké
## 1 cukor 300 g TRUE
## 2 vajce 6 ks FALSE
## 3 mlieko 150 ml FALSE
## 4 olej 150 ml FALSE
## 5 polohrubá múka 435 g TRUE
## 6 PDP 1 ks TRUE
udaje$Sypké <- NULL
udaje$MaAuto <- NULL
library(knitr)
library(kableExtra)
kable(
udaje,
# format,
digits = 2,
# row.names = NA,
# col.names = NA,
align=c("l","c","l","r"),
caption = "Tabuľka"
# label = NULL,
# format.args = list(),
# escape = TRUE,
# ...
) %>%
kable_styling(bootstrap_options = c("bordered", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center")
| Položka | Počet | Jednotka |
|---|---|---|
| cukor | 300 | g |
| vajce | 6 | ks |
| mlieko | 150 | ml |
| olej | 150 | ml |
| polohrubá múka | 435 | g |
| PDP | 1 | ks |
Tidyverse je súbor knižníc, ktoré majú zjednodušiť prácu s údajmi. Majú jednotný komunikačný štandard, vzájomne sa doplňujú.
# Load tidyverse
library(tidyverse)
.dplyr. poskytuje základné možnosti manipulácie s údajmi, ako napr.:
filter(): vyberá riadky
select(): vyberá stĺpce
mutate(): vytvára nové stĺpce tabuľky
arrange(): triedi riadky
summarise(): sumarizuje
V nasledovnej ukážke využijeme tzv. .pipes. %>% alebo %<% umožňuje posielať výsledky z jednej funkcie priamo do volanie nasledovnej funkcie. To umožňuje ľahšiu čitateľnosť kódov, konvencia sa ujala a má široké použitie.
udaje %>%
filter(Počet > 200)%>% # vyberá suroviny s počtom vyšším ako 200
arrange(desc(Počet))%>% # vysledny subor triedi zostupne podla premennej Počet
kable %>%
kable_styling(
bootstrap_options = c("bordered", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
| Položka | Počet | Jednotka |
|---|---|---|
| polohrubá múka | 435 | g |
| cukor | 300 | g |
udaje %>%
group_by(Jednotka) %>% # zoskupí podľa stĺpca Jednotka
summarise(
Priem.Počet = mean(Počet, na.rm = TRUE), # priemer počtu
count = n() # počet záznamov v skupine
) %>%
kable(
caption = "Priemerný počet podľa Jednotky",
col.names = c("Jednotka", "Priemer Počet", "Počet"),
align = "c"
) %>%
kable_styling(
bootstrap_options = c("bordered", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
| Jednotka | Priemer Počet | Počet |
|---|---|---|
| g | 367.5 | 2 |
| ks | 3.5 | 2 |
| ml | 150.0 | 2 |
udaje_novy <- udaje %>%
mutate(
# kategorizácia podľa Počet
Trieda = case_when(
Počet >= 300 ~ "A",
Počet >= 200 ~ "B",
Počet >= 100 ~ "C",
TRUE ~ "D"
),
# nový stĺpec: dvojitá dávka
DvojitáDávka = Počet * 2
)
# Zobrazenie tabuľky s farebným stĺpcom
udaje_novy %>%
kable(caption = "Tabuľka surovín s dvojitou dávkou") %>%
kable_styling(
bootstrap_options = c("hover","bordered","responsive"),
full_width = FALSE,
position = "center",
font_size = 14
) %>%
row_spec(0, bold = TRUE, color = "white", background = "black") %>%
column_spec(ncol(udaje_novy), bold = TRUE, color = "white", background = "green")
| Položka | Počet | Jednotka | Trieda | DvojitáDávka |
|---|---|---|---|---|
| cukor | 300 | g | A | 600 |
| vajce | 6 | ks | D | 12 |
| mlieko | 150 | ml | C | 300 |
| olej | 150 | ml | C | 300 |
| polohrubá múka | 435 | g | A | 870 |
| PDP | 1 | ks | D | 2 |
library(ggplot2)
library(tidyr)
library(dplyr)
udaje_long <- udaje_novy %>%
select(Položka, Počet, DvojitáDávka) %>%
pivot_longer(cols = c(Počet, DvojitáDávka),
names_to = "TypDavky",
values_to = "Mnozstvo")
# Graf s bodmi
ggplot(udaje_long, aes(x = Položka, y = Mnozstvo, color = TypDavky)) +
geom_point(size = 4) + # body namiesto čiar
scale_color_manual(values = c("Počet" = "red", "DvojitáDávka" = "green")) +
theme_minimal() +
labs(title = "Porovnanie",
x = "Surovina",
y = "Množstvo",
color = "Typ dávky")