V nasledujúcom Chunku je urobené základné globálne nastavenie Chunkov v celom Notebooku.
knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE
)
# Priradenie konštánt do premenných
x <- 12
y <- 5.2
# Aritmetické operácie
sum_xy <- x + y # súčet
diff_xy <- x - y # rozdiel
prod_xy <- x * y # násobenie
quot_xy <- x / y # delenie
power_xy <- x ^ 2 # x na druhú
mod_x <- x %% 5 # zvyšok po delení piatimi
int_div <- x %/% 5 # celočíselné delenie
# Zaokrúhľovanie
round_y <- round(y, 1) # zaokrúhlenie na 1 desatinné miesto
ceil_y <- ceiling(y) # najbližšie väčšie celé číslo
floor_y <- floor(y) # najbližšie menšie celé číslo
x; y
sum_xy; diff_xy; prod_xy; quot_xy; power_xy; mod_x; int_div
round_y; ceil_y; floor_y
#cvičenie
((18^2 + 6) / (4 + 5))
#Vytváranie textovými premennými a práca s nimi
first <- "Anna" # krstné meno
last <- "Nováková" # priezvisko
full_name <- paste(first, last) # spojenie s medzerou
full_nospace <- paste0(first, last) # spojenie bez medzery
three_words <- paste("R", "je", "super", sep = "_")
csv_fruits <- paste("jablko", "banán", "hruška", sep = "; ")
first; last
full_name; full_nospace
three_words; csv_fruits
#Dĺžka textového reťazca, podreťazec
sentence <- "R je skvelý nástroj na analýzu dát."
nchar(sentence) # počet znakov v reťazci
substr(sentence, 1, 10) # prvých 10 znakov
substr(sentence,
nchar(sentence) - 9,
nchar(sentence)) # posledných 10 znakov
#Malé cvičenie
Vytvorte premennú motto s textom
"Učenie sa programovať je investícia."
Zistite:
dĺžku reťazca,
podreťazec od 9. do 18. znaku.
motto <- "Učenie sa programovať je investícia."
nchar(motto) # dĺžka reťazca
substr(motto, 9, 18) # podreťazec 9.–18. znak
#Logické (boolovské) hodnoty a premenné
Základy
p <- TRUE
q <- FALSE
!p # negácia (NOT)
p & q # logické AND
p | q # logické OR
xor(p, q) # exkluzívne OR – pravda, ak platí presne jedna z podmienok
#Logický výsledok porovnávania
10 > 3
4 <= 4
"R" == "R"
"R" != "Python" # != znamená "nie je rovné"
!FALSE
#Zložitejšie logické operácie
vek <- 21
prijem <- 450
# vek >= 18 a zároveň príjem > 400
vek >= 18 & prijem > 400
# vek < 18 alebo príjem >= 500
vek < 18 | prijem >= 500
# zložitejší výraz – odporúča sa používať zátvorky
(vek > 18 & prijem < 300) | prijem > 1000
#cvičenie
Študent úspešne ukončil predmet, ak:
má aspoň 50 bodov zo skúšky a
bol na cvičeniach minimálne 5-krát.
Pre points = 62 a classes = 4 vytvorte logickú premennú
passed, ktorá vyjadruje, či študent úspešne ukončil predmet.
points <- 62
classes <- 4
passed <- points >= 50 & classes >= 5
passed
#návrh použitia novinky
#ifelse() – vytvorenie textovej správy na základe podmienky,
tolower() – prevod textu na malé písmená,
grepl() – vyhľadanie výskytu vzoru v texte,
any() a all() – agregácia logických hodnôt.
# Vstupné údaje o študentoch
names <- c("Anna", "Peter", "martin", "Zuzana")
points <- c(55, 48, 76, 90)
# 1. Novinka: ifelse - textový výsledok podľa bodov
result <- ifelse(points >= 50, "úspešný", "neúspešný")
# 2. Novinka: tolower - zjednotenie veľkosti písmen v menách
names_lower <- tolower(names)
# 3. Novinka: grepl - zistenie, či meno obsahuje písmeno "a"
contains_a <- grepl("a", names_lower)
# 4. Novinka: any a all - agregácia logických hodnôt
any_passed <- any(points >= 50) # aspoň jeden študent uspel?
all_passed <- all(points >= 50) # všetci študenti uspeli?
names; points
result # textová informácia o úspešnosti
names_lower # mená malými písmenami
contains_a # TRUE/FALSE, či meno obsahuje "a"
any_passed; all_passed
Vstupné údaje o študentoch
names <- c("Anna", "Peter", "martin", "Zuzana")
points <- c(55, 48, 76, 90)
1. Novinka: ifelse - textový výsledok podľa bodov
result <- ifelse(points >= 50, "úspešný", "neúspešný")
2. Novinka: tolower - zjednotenie veľkosti písmen v menách
names_lower <- tolower(names)
3. Novinka: grepl - zistenie, či meno obsahuje písmeno "a"
contains_a <- grepl("a", names_lower)
4.Novinka: any a all - agregácia logických hodnôt
any_passed <- any(points >= 50) # aspoň jeden študent uspel?
all_passed <- all(points >= 50) # všetci študenti uspeli?
names; points
result # textová informácia o úspešnosti
names_lower # mená malými písmenami
contains_a # TRUE/FALSE, či meno obsahuje "a"
any_passed; all_passed
#Vďaka týmto príkazom vieme kombinovať čísla, text aj logické
hodnoty a vytvárať užitočné textové výstupy (napr. prehľad o tom,ktorí študenti uspeli, ako sa volajú a aké majú vlastnosti).