Majme údaje o športovoch, ktoré predstavujú tri premenné - Meno, Výška, Váha a šport.
# Working with data frames
Meno = c("Boris", "Pavol", "Daniel")
Výška = c(183, 179, 194)
Váha = c(91, 86, 105)
Šport = c("futbal", "hokej", "basketbal")
NULL
[1] NA
[1] "Boris"
Meno Výška Váha
Length:3 Min. :179.0 Min. : 86.0
Class :character 1st Qu.:181.0 1st Qu.: 88.5
Mode :character Median :183.0 Median : 91.0
Mean :185.3 Mean : 94.0
3rd Qu.:188.5 3rd Qu.: 98.0
Max. :194.0 Max. :105.0
Ak chceme pridať k tabuľke dodatočný stĺpec, potom to robíme nasledovne
Ak chceme pridať riadok, potom
# New record (must match column order/types)
novy.riadok <- data.frame(Meno = "Filip", Výška = 178, Váha = 82,Šport = "plávanie")
# Append
udaje <- rbind(udaje, novy.riadok)
print(udaje)
library(knitr)
library(kableExtra)
kable(
udaje,
# format,
digits = 2,
# row.names = NA,
# col.names = NA,
align=c("l","c","l","r"),
caption = "Toto je tabuľka"
# label = NULL,
# format.args = list(),
# escape = TRUE,
# ...
) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center")
Meno | Výška | Váha | Šport |
---|---|---|---|
Boris | 183 | 91 | futbal |
Pavol | 179 | 86 | hokej |
Daniel | 194 | 105 | basketbal |
Filip | 178 | 82 | plávanie |
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ú.
.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.
# výber a následné triedenie
udaje %>%
filter(Váha > 50) %>% # vybera zaznamy s poctom bodov viac, ako 50
arrange(desc(Body)) %>% # vysledny subor triedi zostupne podla premennej Body
kable %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
Error in `arrange()`:
ℹ In argument: `..1 = Body`.
Caused by error:
! `..1` must be size 4 or 1, not 3.
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.
# Zoskupí and sumarizuje
udaje %>%
group_by(MaAuto) %>% # zoskupi zaznamy podla premennej MaAuto a vypocita za kazdu skupinu jej priemer Body
summarise( # a taktiez spocita pocetnosti oboch skupin
Priem.Body = mean(Váha),
count = n()
) %>%
kable(
caption = "Priemerné Body podľa premennej MaAuto",
col.names = c("Má Auto", "Priemer Váha", "Počet"),
align = "c"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
Error in `group_by()`:
! Must group by variables found in `.data`.
✖ Column `MaAuto` is not found.
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.
# Vytváranie novej premennej
udaje %>%
mutate(
grade = case_when( # vytvara novu premennu grade podla nasledovnej relacnej schemy
Váha >= 90 ~ "A",
Váha >= 80 ~ "B",
Váha >= 70 ~ "C",
TRUE ~ "D"
),
) %>%
kable %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
Meno | Výška | Váha | Šport | grade |
---|---|---|---|---|
Boris | 183 | 91 | futbal | A |
Pavol | 179 | 86 | hokej | B |
Daniel | 194 | 105 | basketbal | A |
Filip | 178 | 82 | plávanie | B |