Majme údaje o krasokorčuliarkach, ktoré sa na posledných majstrovstvách sveta umiestnili na prvých desiatich priečkach.
Meno <- c("Max Verstappen", "Lewis Hamilton", "Charles Leclerc", "Lando Norris")
Tim <- c("Red Bull", "Mercedes", "Ferrari", "McLaren")
Body <- c(400, 350, 280, 260)
f1 <- data.frame(Meno, Tim, Body)
print(f1)
Meno <- c("Kaori Sakamoto", "Isabeau Levito", "Chaeyeon Kim",
"Loena Hendrickx", "Kimmy Repond", "Lee Hae-In",
"Mone Chiba", "Hana Yoshida", "Livia Kaiser", "Amber Glenn")
Krajina <- c("JPN", "USA", "KOR", "BEL", "SUI", "KOR", "JPN", "JPN", "SUI", "USA")
Body <- c(222.96, 212.16, 203.59, 200.25, 196.02, 195.48, 195.46, 194.93, 187.24, 186.53)
# Vytvorenie data frame
krasokorculiarky <- data.frame(Meno, Krajina, Body)
# Zobrazenie
krasokorculiarky
Tieto tri premenné nie sú zatiaľ nijako prepojené, predstavujú izolované stĺpce tabuľky. Do tabuľky ich spojíme nasledovne
Vysvetlenie: DataFrame má tri stĺpce: Meno, Krajina a Body. Niektoré operácie s údajmi organizovanými v .data.frame. sú uvedené nasledovne
print(krasokorculiarky$Krajina) # vypíše nám stĺpec s krajinami
print(mean(krasokorculiarky$Body)) # priemerný počet bodov
print(krasokorculiarky[Meno=="Kaori Sakamoto",]) # adresovanie celého riadku podľa mena
print(krasokorculiarky[3,]) # ina moznost adresovania celeho riadku
print(krasokorculiarky[,2:3]) # vypisanie druheho a tretieho stlpca tabulky
print(krasokorculiarky[1,1]) # vypisanie jednej bunky tabulky
summary(krasokorculiarky) # zakladna deskriptivna statistika celej tabulky
Ak chceme pridať k tabuľke dodatočný stĺpec, potom to robíme nasledovne:
MaMedailu <- c(TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)
krasokorculiarky <- cbind(krasokorculiarky,MaMedailu)
print(krasokorculiarky)
Pridali sme stlpec s informáciou, ktorá nám hovorí o tom, či si súťažiaca vybojovala medailu alebo nie. Ak chceme pridať riadok, potom
library(knitr)
library(kableExtra)
kable(
krasokorculiarky,
# 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")
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
krasokorculiarky %>%
filter(Body > 200) %>% # vybera zaznamy s poctom bodov viac, ako 200
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"
)
# Zoskupí and sumarizuje
krasokorculiarky %>%
group_by(Krajina) %>% # zoskupi zaznamy podla premennej MaAuto a vypocita za kazdu skupinu jej priemer Body
summarise( # a taktiez spocita pocetnosti oboch skupin
Priem.Body = mean(Body),
count = n()
) %>%
kable(
caption = "Priemerné Body podľa premennej Krajina",
col.names = c("Krajina", "Priemer Body", "Počet"),
align = "c"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
library(dplyr)
library(knitr)
library(kableExtra)
# Pridanie grade a CloseToMedal
krasokorculiarky %>%
mutate(
grade = case_when(
Body >= 220 ~ "A",
Body >= 200 ~ "B",
Body >= 190 ~ "C",
TRUE ~ "D"
),
CloseToMedal = Body >= 200 & Body < 203.59 # TRUE pre body tesne mimo top 3 čiže blízko ku medaile
) %>%
kable() %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)