Globálne nastavenie Chunkov

V nasledujúcom Chunku je urobené základné globálne nastavenie Chunkov v celom Notebooku.

  • echo nastavuje, či chceme v Notebooku vypisovať jednotlivé kódy R
  • message je nastavený na FALSE, čo znamená, že sa budú potláčať rôzne textové správy z R (napr. pri otváraní knižníc),
  • warning nastavený na FALSE potláča zobrazenie varovaní (warnings).
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).
LS0tCnRpdGxlOiAiWsOha2xhZG7DqSBvcGVyw6FjaWUgdiBSIOKAkyBjdmnEjW7DvSBub3RlYm9vayIKYXV0aG9yOiAiTmF0w6FsaWEgU29saWdvdsOhIgpkYXRlOiAiU2VwdGVtYmVyIDIwMjUiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIHRoZW1lOiB1bml0ZWQKICAgIGhpZ2hsaWdodDogdGFuZ28KZWRpdG9yX29wdGlvbnM6CiAgbWFya2Rvd246CiAgICB3cmFwOiA3MgotLS0KCiMgR2xvYsOhbG5lIG5hc3RhdmVuaWUgQ2h1bmtvdgoKViBuYXNsZWR1asO6Y29tIENodW5rdSBqZSB1cm9iZW7DqSB6w6FrbGFkbsOpIGdsb2LDoWxuZSBuYXN0YXZlbmllIENodW5rb3YKdiBjZWxvbSBOb3RlYm9va3UuCgotICoqZWNobyoqIG5hc3RhdnVqZSwgxI1pIGNoY2VtZSB2IE5vdGVib29rdSB2eXBpc292YcWlIGplZG5vdGxpdsOpIGvDs2R5IFIKLSAqKm1lc3NhZ2UqKiBqZSBuYXN0YXZlbsO9IG5hICpGQUxTRSosIMSNbyB6bmFtZW7DoSwgxb5lIHNhIGJ1ZMO6IHBvdGzDocSNYcWlCiAgcsO0em5lIHRleHRvdsOpIHNwcsOhdnkgeiBSIChuYXByLiBwcmkgb3R2w6FyYW7DrSBrbmnFvm7DrWMpLAotICoqd2FybmluZyoqIG5hc3RhdmVuw70gbmEgKkZBTFNFKiBwb3Rsw6HEjWEgem9icmF6ZW5pZSB2YXJvdmFuw60gKHdhcm5pbmdzKS4KCmBgYHtyIHNldHVwLCBpbmNsdWRlPVRSVUUsIGVjaG89VFJVRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KAogIGVjaG8gICAgPSBUUlVFLAogIG1lc3NhZ2UgPSBGQUxTRSwKICB3YXJuaW5nID0gRkFMU0UKKQojIFByaXJhZGVuaWUga29uxaF0w6FudCBkbyBwcmVtZW5uw71jaAoKeCA8LSAxMgp5IDwtIDUuMgoKIyBBcml0bWV0aWNrw6kgb3BlcsOhY2llCgpzdW1feHkgICA8LSB4ICsgeSAgICAgICAgIyBzw7rEjWV0CmRpZmZfeHkgIDwtIHggLSB5ICAgICAgICAjIHJvemRpZWwKcHJvZF94eSAgPC0geCAqIHkgICAgICAgICMgbsOhc29iZW5pZQpxdW90X3h5ICA8LSB4IC8geSAgICAgICAgIyBkZWxlbmllCnBvd2VyX3h5IDwtIHggXiAyICAgICAgICAjIHggbmEgZHJ1aMO6Cm1vZF94ICAgIDwtIHggJSUgNSAgICAgICAjIHp2ecWhb2sgcG8gZGVsZW7DrSBwaWF0aW1pCmludF9kaXYgIDwtIHggJS8lIDUgICAgICAjIGNlbG/EjcOtc2VsbsOpIGRlbGVuaWUKCiMgWmFva3LDumjEvm92YW5pZQoKcm91bmRfeSAgPC0gcm91bmQoeSwgMSkgICMgemFva3LDumhsZW5pZSBuYSAxIGRlc2F0aW5uw6kgbWllc3RvCmNlaWxfeSAgIDwtIGNlaWxpbmcoeSkgICAjIG5hamJsacW+xaFpZSB2w6TEjcWhaWUgY2Vsw6kgxI3DrXNsbwpmbG9vcl95ICA8LSBmbG9vcih5KSAgICAgIyBuYWpibGnFvsWhaWUgbWVuxaFpZSBjZWzDqSDEjcOtc2xvCgp4OyB5CnN1bV94eTsgZGlmZl94eTsgcHJvZF94eTsgcXVvdF94eTsgcG93ZXJfeHk7IG1vZF94OyBpbnRfZGl2CnJvdW5kX3k7IGNlaWxfeTsgZmxvb3JfeQojY3ZpxI1lbmllCigoMTheMiArIDYpIC8gKDQgKyA1KSkKI1Z5dHbDoXJhbmllIHRleHRvdsO9bWkgcHJlbWVubsO9bWkgYSBwcsOhY2EgcyBuaW1pCmZpcnN0IDwtICJBbm5hIiAgICAgICAgICAgIyBrcnN0bsOpIG1lbm8KbGFzdCAgPC0gIk5vdsOha292w6EiICAgICAgICMgcHJpZXp2aXNrbwoKZnVsbF9uYW1lICAgIDwtIHBhc3RlKGZpcnN0LCBsYXN0KSAgICAgICAgICAgICAgICMgc3BvamVuaWUgcyBtZWR6ZXJvdQpmdWxsX25vc3BhY2UgPC0gcGFzdGUwKGZpcnN0LCBsYXN0KSAgICAgICAgICAgICAgIyBzcG9qZW5pZSBiZXogbWVkemVyeQp0aHJlZV93b3JkcyAgPC0gcGFzdGUoIlIiLCAiamUiLCAic3VwZXIiLCBzZXAgPSAiXyIpCmNzdl9mcnVpdHMgICA8LSBwYXN0ZSgiamFibGtvIiwgImJhbsOhbiIsICJocnXFoWthIiwgc2VwID0gIjsgIikKCmZpcnN0OyBsYXN0CmZ1bGxfbmFtZTsgZnVsbF9ub3NwYWNlCnRocmVlX3dvcmRzOyBjc3ZfZnJ1aXRzCiNExLrFvmthIHRleHRvdsOpaG8gcmXFpWF6Y2EsIHBvZHJlxaVhemVjCnNlbnRlbmNlIDwtICJSIGplIHNrdmVsw70gbsOhc3Ryb2ogbmEgYW5hbMO9enUgZMOhdC4iCm5jaGFyKHNlbnRlbmNlKSAgICAgICAgICAgICAgICAgICAjIHBvxI1ldCB6bmFrb3YgdiByZcWlYXpjaQpzdWJzdHIoc2VudGVuY2UsIDEsIDEwKSAgICAgICAgICAgIyBwcnbDvWNoIDEwIHpuYWtvdgpzdWJzdHIoc2VudGVuY2UsCm5jaGFyKHNlbnRlbmNlKSAtIDksCm5jaGFyKHNlbnRlbmNlKSkgICAgICAgICAgICMgcG9zbGVkbsO9Y2ggMTAgem5ha292CiNNYWzDqSBjdmnEjWVuaWUKClZ5dHZvcnRlIHByZW1lbm7DuiBtb3R0byBzIHRleHRvbQoiVcSNZW5pZSBzYSBwcm9ncmFtb3ZhxaUgamUgaW52ZXN0w61jaWEuIgpaaXN0aXRlOgpkxLrFvmt1IHJlxaVhemNhLApwb2RyZcWlYXplYyBvZCA5LiBkbyAxOC4gem5ha3UuCm1vdHRvIDwtICJVxI1lbmllIHNhIHByb2dyYW1vdmHFpSBqZSBpbnZlc3TDrWNpYS4iCm5jaGFyKG1vdHRvKSAgICAgICAgICAjIGTEusW+a2EgcmXFpWF6Y2EKc3Vic3RyKG1vdHRvLCA5LCAxOCkgICMgcG9kcmXFpWF6ZWMgOS7igJMxOC4gem5hawojTG9naWNrw6kgKGJvb2xvdnNrw6kpIGhvZG5vdHkgYSBwcmVtZW5uw6kKWsOha2xhZHkKcCA8LSBUUlVFCnEgPC0gRkFMU0UKCiFwICAgICAgICAgICMgbmVnw6FjaWEgKE5PVCkKcCAmIHEgICAgICAgIyBsb2dpY2vDqSBBTkQKcCB8IHEgICAgICAgIyBsb2dpY2vDqSBPUgp4b3IocCwgcSkgICAjIGV4a2x1esOtdm5lIE9SIOKAkyBwcmF2ZGEsIGFrIHBsYXTDrSBwcmVzbmUgamVkbmEgeiBwb2RtaWVub2sKI0xvZ2lja8O9IHbDvXNsZWRvayBwb3Jvdm7DoXZhbmlhCjEwID4gMwo0IDw9IDQKIlIiID09ICJSIgoiUiIgIT0gIlB5dGhvbiIgICAjICE9IHpuYW1lbsOhICJuaWUgamUgcm92bsOpIgohRkFMU0UKI1psb8W+aXRlasWhaWUgbG9naWNrw6kgb3BlcsOhY2llCnZlayAgICA8LSAyMQpwcmlqZW0gPC0gNDUwCgojIHZlayA+PSAxOCBhIHrDoXJvdmXFiCBwcsOtamVtID4gNDAwCgp2ZWsgPj0gMTggJiBwcmlqZW0gPiA0MDAKCiMgdmVrIDwgMTggYWxlYm8gcHLDrWplbSA+PSA1MDAKCnZlayA8IDE4IHwgcHJpamVtID49IDUwMAoKIyB6bG/Fvml0ZWrFocOtIHbDvXJheiDigJMgb2Rwb3LDusSNYSBzYSBwb3XFvsOtdmHFpSB6w6F0dm9ya3kKCih2ZWsgPiAxOCAmIHByaWplbSA8IDMwMCkgfCBwcmlqZW0gPiAxMDAwCiNjdmnEjWVuaWUKCsWgdHVkZW50IMO6c3BlxaFuZSB1a29uxI1pbCBwcmVkbWV0LCBhazoKCm3DoSBhc3BvxYggNTAgYm9kb3Ygem8gc2vDusWha3kgYQoKYm9sIG5hIGN2acSNZW5pYWNoIG1pbmltw6FsbmUgNS1rcsOhdC4KClByZSBwb2ludHMgPSA2MiBhIGNsYXNzZXMgPSA0IHZ5dHZvcnRlIGxvZ2lja8O6IHByZW1lbm7DugpwYXNzZWQsIGt0b3LDoSB2eWphZHJ1amUsIMSNaSDFoXR1ZGVudCDDunNwZcWhbmUgdWtvbsSNaWwgcHJlZG1ldC4KcG9pbnRzICA8LSA2MgpjbGFzc2VzIDwtIDQKCnBhc3NlZCA8LSBwb2ludHMgPj0gNTAgJiBjbGFzc2VzID49IDUKcGFzc2VkCiNuw6F2cmggcG91xb5pdGlhIG5vdmlua3kKI2lmZWxzZSgpIOKAkyB2eXR2b3JlbmllIHRleHRvdmVqIHNwcsOhdnkgbmEgesOha2xhZGUgcG9kbWllbmt5LAp0b2xvd2VyKCkg4oCTIHByZXZvZCB0ZXh0dSBuYSBtYWzDqSBww61zbWVuw6EsCmdyZXBsKCkg4oCTIHZ5aMS+YWRhbmllIHbDvXNreXR1IHZ6b3J1IHYgdGV4dGUsCmFueSgpIGEgYWxsKCkg4oCTIGFncmVnw6FjaWEgbG9naWNrw71jaCBob2Ruw7R0LgojIFZzdHVwbsOpIMO6ZGFqZSBvIMWhdHVkZW50b2NoCgpuYW1lcyAgPC0gYygiQW5uYSIsICJQZXRlciIsICJtYXJ0aW4iLCAiWnV6YW5hIikKcG9pbnRzIDwtIGMoNTUsIDQ4LCA3NiwgOTApCgojIDEuIE5vdmlua2E6IGlmZWxzZSAtIHRleHRvdsO9IHbDvXNsZWRvayBwb2TEvmEgYm9kb3YKCnJlc3VsdCA8LSBpZmVsc2UocG9pbnRzID49IDUwLCAiw7pzcGXFoW7DvSIsICJuZcO6c3BlxaFuw70iKQoKIyAyLiBOb3ZpbmthOiB0b2xvd2VyIC0gemplZG5vdGVuaWUgdmXEvmtvc3RpIHDDrXNtZW4gdiBtZW7DoWNoCgpuYW1lc19sb3dlciA8LSB0b2xvd2VyKG5hbWVzKQoKIyAzLiBOb3ZpbmthOiBncmVwbCAtIHppc3RlbmllLCDEjWkgbWVubyBvYnNhaHVqZSBww61zbWVubyAiYSIKCmNvbnRhaW5zX2EgPC0gZ3JlcGwoImEiLCBuYW1lc19sb3dlcikKCiMgNC4gTm92aW5rYTogYW55IGEgYWxsIC0gYWdyZWfDoWNpYSBsb2dpY2vDvWNoIGhvZG7DtHQKCmFueV9wYXNzZWQgPC0gYW55KHBvaW50cyA+PSA1MCkgICAjIGFzcG/FiCBqZWRlbiDFoXR1ZGVudCB1c3BlbD8KYWxsX3Bhc3NlZCA8LSBhbGwocG9pbnRzID49IDUwKSAgICMgdsWhZXRjaSDFoXR1ZGVudGkgdXNwZWxpPwoKbmFtZXM7IHBvaW50cwpyZXN1bHQgICAgICAgICAgICAgICAgIyB0ZXh0b3bDoSBpbmZvcm3DoWNpYSBvIMO6c3BlxaFub3N0aQpuYW1lc19sb3dlciAgICAgICAgICAgIyBtZW7DoSBtYWzDvW1pIHDDrXNtZW5hbWkKY29udGFpbnNfYSAgICAgICAgICAgICMgVFJVRS9GQUxTRSwgxI1pIG1lbm8gb2JzYWh1amUgImEiCmFueV9wYXNzZWQ7IGFsbF9wYXNzZWQKVnN0dXBuw6kgw7pkYWplIG8gxaF0dWRlbnRvY2gKCm5hbWVzIDwtIGMoIkFubmEiLCAiUGV0ZXIiLCAibWFydGluIiwgIlp1emFuYSIpCnBvaW50cyA8LSBjKDU1LCA0OCwgNzYsIDkwKQoKMS4gTm92aW5rYTogaWZlbHNlIC0gdGV4dG92w70gdsO9c2xlZG9rIHBvZMS+YSBib2RvdgoKcmVzdWx0IDwtIGlmZWxzZShwb2ludHMgPj0gNTAsICLDunNwZcWhbsO9IiwgIm5lw7pzcGXFoW7DvSIpCgoyLiBOb3ZpbmthOiB0b2xvd2VyIC0gemplZG5vdGVuaWUgdmXEvmtvc3RpIHDDrXNtZW4gdiBtZW7DoWNoCgpuYW1lc19sb3dlciA8LSB0b2xvd2VyKG5hbWVzKQoKMy4gTm92aW5rYTogZ3JlcGwgLSB6aXN0ZW5pZSwgxI1pIG1lbm8gb2JzYWh1amUgcMOtc21lbm8gImEiCgpjb250YWluc19hIDwtIGdyZXBsKCJhIiwgbmFtZXNfbG93ZXIpCjQuTm92aW5rYTogYW55IGEgYWxsIC0gYWdyZWfDoWNpYSBsb2dpY2vDvWNoIGhvZG7DtHQKCmFueV9wYXNzZWQgPC0gYW55KHBvaW50cyA+PSA1MCkgIyBhc3BvxYggamVkZW4gxaF0dWRlbnQgdXNwZWw/CmFsbF9wYXNzZWQgPC0gYWxsKHBvaW50cyA+PSA1MCkgIyB2xaFldGNpIMWhdHVkZW50aSB1c3BlbGk/CgpuYW1lczsgcG9pbnRzCnJlc3VsdCAjIHRleHRvdsOhIGluZm9ybcOhY2lhIG8gw7pzcGXFoW5vc3RpCm5hbWVzX2xvd2VyICMgbWVuw6EgbWFsw71taSBww61zbWVuYW1pCmNvbnRhaW5zX2EgIyBUUlVFL0ZBTFNFLCDEjWkgbWVubyBvYnNhaHVqZSAiYSIKYW55X3Bhc3NlZDsgYWxsX3Bhc3NlZAoKI1bEj2FrYSB0w71tdG8gcHLDrWthem9tIHZpZW1lIGtvbWJpbm92YcWlIMSNw61zbGEsIHRleHQgYWogbG9naWNrw6kKaG9kbm90eSBhIHZ5dHbDoXJhxaUgdcW+aXRvxI1uw6kgdGV4dG92w6kgdsO9c3R1cHkgKG5hcHIuIHByZWjEvmFkIG8gdG9tLGt0b3LDrSDFoXR1ZGVudGkgdXNwZWxpLCBha28gc2Egdm9sYWrDuiBhIGFrw6kgbWFqw7ogdmxhc3Rub3N0aSkuCg==