Cvičenie 1 - Úvod do programovacieho jazyka R

Cieľom prvého cvičenia je naučiť sa programovať jednoduché skripty v jazyku R.

Skripty

Skripty budeme vytvárať v Open Source programe RStudio.RStudio je integrované vývojové prostredie (IDE) pre R. Zahŕňa konzolu, editor zvýrazňujúci syntax, ktorý podporuje priame vykonávanie kódu, ako aj nástroje na vykreslenie, históriu, ladenie a správu pracovného priestoru. Vytvorený zdrojový kód bude mať príponu .R.

Pre vytvorenie nového skriptu stlačte File -> New File -> R script, alebo jednoducho kliknite na zelené + a vyberte prvú možnosť R script.

Pre spustenie príkazu nastavte kurzor na daný riadok a stlačte klávesy Ctrl + Enter alebo tlačidlo Run na lište vytvoreného scriptu

Pre vlastné skripty si vytvorte v adresári /home/student/ adresár s vaším priezviskom a všetky svoje súbory ukladajte tam.

Postupujte podľa nasledujúcich krokov:

Dátové typy a objekty

Objekty

Nové objekty môžeme vytvoriť a vypísať dvoma spôsobmi, je len na vás ktorí budete používať.

Podmienky (Conditions)

Najčastejšie sa používajúce vektorové operácie:

Podmienky Popis
<- alebo = priradenie
a == b rovná sa
a != b nerovná sa
a < b je menšie ako
a > b je vačsie ako
a <= b je menšie rovné ako
a >= b je väčšie rovné ako
is.na() testuje, či ide o chýbajúcu hodnotu NA (Not Available)
is.nan() testuje, či ide o NaN (Not A Number) t. j. o nedefinované (matematické) výsledky operácií
is.null() testuje, či objekt je NULL
Matematické operácie Popis
a+b, a-b,a*b,a/b základné matematické operácie
sum(x) Suma
min(x) Najmenšia hodnota
max(x) Najväčšia hodnota
mean(x) Priemer
median(x) Stredná hodnota
mode(x) Najčastejšie sa vyskytujúca hodnota
log(x) Prirodzený logaritmus
exp(x) Exponencialna funkcia
sqrt(x) Druhá odmocnina
abs(x) Absolútna hodnota
ceiling(x) Zaokrúhli nahor na celé čislo
floor(x)/trunc(x) Zaokrúhli nadol na celé čislo
round(x,digits = 5) Zaokrúhli na 5 desatiných miest
čislo %% 2 == 0 Zvyšok po delení dvoma je nula, t.j. čislo je deliteľné dvoma
rnorm() Náhodné normálne rozdelenie
runif() Náhodné rovnomerné rozdelenie

Vektory (Vector)

V prvej časti sa pozrieme akými spôsobmi sa dajú vektory vytvoriť. V druhej časti budeme pristupovať k jednotlivým elementom vektora podľa pozície a hodnoty, ktorú chceme vrátiť.

Zmena dátového typu (Data Type) - explicitná korekcia

Poznáme niekoľko základných dátových typov a to: znaky (character), logické hodnoty (logical), numerické hodnoty (numeric), celočíselné hodnoty (integer), komplexné čísla (complex) a špeciálny dátový typ faktor (factor). Faktor sa používa na reprezentáciu kategorických dát. Niektoré algoritmy si vyžadujú zmenu dátového typu, preto si spôsob ako "pretypovať" nápriklad vektor hodnôt.

Matice (Matrix)

Matice sú objekty typu vector s definovanými dimenziami. Existuje niekoľko spoôsobov ako vytvoriť maticu:

Všimnte si ako sú matice konštruované!

Zoznamy (List)

Zoznam je opäť špecialný objekt typu vector, avšak môže obsahovať rôzne dátové typy a objekty (napríklad znaky, čisla, logické hodnoty ale aj vnorený zoznam či vektor)

Dátové rámce (Data Frame)

Dátové rámce sa využívajú na ukladanie tabuľkovýc dát. Je to špeciálny typ zoznamu (list), pričom každý element má rovnakú dĺžku. Jeden element tvorí jeden stĺpec, pričom každý stĺpec môže nadobúdať iný dátový typ. Príkazom data.matrix() môžete kovertovať data na maticu.

V nasledujúcom skripte si ukážeme základné operácie s dátovými rámcami (prístup k podmnožinám, podmienený výber riadkov, nahrádzanie jednotlivých hodnôt, usporiadanie, pridávanie nových slĺpcov). Ďalej budeme k dátovým rámcom pristupovať cez knižnicu dplyr. Tejto knižnici bude venované cvičenie 3.

Podmienka if-else

Testovacia podmianka:

Cyklus for

Cyklus s fixným počtom opkovaní:

Cyklus while

Cyklus, ktorý sa opakuje, pokiaľ je platná podmienka:

Break, repeat, next, return

repeat spúšťa nekonečný cyklus, ako while, bez podmienky
break ukončuje beh nekonečného cyklu
next preskočí iteráciu v cykle
return výstup funkcie

Funkcie

Úlohy

Úloha 1.1

Vytvorte funkciu s názvom funkcia, ktorá bude mať vstupný parameter n. Použitím cyklu prejdite všetky čísla od 1 po n a pomocou vetvenia urobte nasledovne operácie:
  1. Ak sa jedná o číslo deliteľné 2 jeho druhú mocninu,
  2. Ak sa jedná o číslo deliteľné 3 a zároveň 5 jeho tretiu mocninu.
  3. Ak číslo nepatrí ani do jednej skupiny, tak ho iba vypíšte.
Na záver spustite funkciu s názvom funkcia.