Pri písaní kódu si treba dávať vždy pozor v opačnom prípade sa môže stať, že vám niečo nejde. Z toho vzniká stres, čo je prirodzené a strácate svoj drahocený čas. Na prevenciu pred týmto slúžia nepísané pravidlá písania kódu. Rozhodol som sa spísať Vám niekoľko užitočných rád (pravidiel) využitelných prioritne v programe RStudio. Veľa z nich dávno používate bez toho, aby ste si to uvedomili, preto pokladám za užitočné prejsť si toto krátke zhrnutie.

Základy a názvy

Začnime “od Adama”, R-ko funguje ako super kalkulačka, ktorá si pamätá všetko čo sa v danej session spočítalo. Výsledky často používate aj niekoľko krát za sebou, preto je dobré ukladať si každý do premennej a následne znova použiť “volať”. Takýmto ukladaním šetríte počítací čas napríklad v cykloch.

Názvy musia začínať písmenami potom môžu obsahovať aj čísla niektoré znaky, čo nemôžu je volať sa rovnako ako už “rezervované” slová alebo operácia (napr. TRUE). Jednoducho povedané premennú objekt, alebo funkciu pomenjte tak, aby sa názov súvisel stým čo obsahuje a bol unikátny. Keď sa vrátite po dlhšiej dobe ku kódu to oceníte. Následne si premenné viete v dlhom skripe dohľadať pomocou kľúčových slov. Existuje niekoľko štýlov pomenovania,

určite si zvoľte jeden štýl na pevno a držte sa ho. Váš kód vždy poriadne okomentujte použitím # pričom si tiež zaužívajte svoj štýl. Rstudio ponúka možnosť vytvárania nadpisov separujúce kód po ďalší nadpis.

# toto je koment 
snake_case <- sqrt(6*9)

# Nadpis urobíte že pridáte na koniec komentu ####

... veľa kódu ...

# <- ak kliknete na šipku schováte kod pod nadpisom ####

... veľa kódu ...

# veľa komentov k tomu

Pomocou nadpisov sa dá orientovať v skripte a ich zoznam nájdete v ľavom dolnom rohu pod skriptom. Vždy píšte kód tak, aby sa dal spúšťať riadok po riadku

# Nesprvávny spôsob usporiadania kodu  ####

set.seed(555) # zaručím si reprodukovatelnosť
x <- rnorm(n = 100, mean = 100) # nagenerujem si náhodny výber a uložím do vektora
y <- log(x) # transformujem logaritmicky
y <- sqrt(x) # alebo odmocnina

# plotnem si výsledoky
plot(x = x, y = y, main = "Logaritmus")
plot(x = x, y = y, main = "Odmocnina")

# keby pustím kód od vrchu po spodok tak dostanem dva rovnaké ploty a to s odmocninou


# Správny spôsob usporiadania s rovnakým efektom ####

set.seed(555) # zaručím si reprodukovatelnosť
x <- rnorm(n = 100, mean = 100) # nagenerujem si náhodny výber a uložím do vektora

y <- log(x) # transformujem logaritmicky
plot(x = x, y = y, main = "Logaritmus") # plotnem vysledok

y <- sqrt(x) # alebo odmocnina
plot(x = x, y = y, main = "Odmocnina") # plotnem vysledok

# tento kod môžete pustit od vrhu po spodok

Volanie funkcií

Tu len jedno odporúčanie, snažte sa vpisovať argumenty do funkcie štýlom nazov_argumentu = hodnota. Syntax je síce napísaný tak, že ak zachováte poradie pri vypĺňaní funkcie nemusíte písať názov argumentu, toto je veľmi zradné, preto na to upozornujem.

# tieto dva riadky urobi to isté, nagenerujú náhodnu vzorku a uložia do premennej x
x <- rnorm(n = 100, mean = 100) 
x <- rnorm(100, 100)

# rozdiel nastane ak chcem zmeniť strednu hodnotu a nechtiac napíšem 
x <- rnorm(50, 100)

# takáto banálna chyba vie niekedy narobiť veľa škody

Užitočné klávesové skratky

RStudio bolo navrhnuté a ďalej sa vyvíja smerom čo najkonfortnejšej práce v R prostredí. Okrem iného jeho editor ponúka možnosť písať okrem R skriptu aj iné. Vo všetkých skriptoch platia okrem konvenčných klávesových skratiek aj,

tieto skratky využívam aj ja denne. Tiež sú skratky na autokorekciu, diagnostiku a pod.


R Projekt

Je niečo, čo beží bez toho, aby sme si to uvedomili a voľne povedané tvorí dušu prostredia umiestneného niekde vo vašom počítači. RStudio ponúka možnosť vytvárať vlastné projekty medzi, ktorými sa môžete prepínať podľa potreby. Projekt je uzavreté prostredie, v ktorom žije R, ukladá históriu a pamätá si naposledny otvorené záložky.

Projekt vždy musíte umiestniť, odporúča sa uložiť ho do spoločného súboru s datatasetmi a ostatnými dokumentmi týkajúcich sa projektu. Na miesto, kde je projekt sa týmto automaticky nastavia všetky cesty a tým si ušetríte dosť času napríklad pri exportovaní obrázkov.

Odporúčam vám vytvoriť si osobitný projekt s názvom “LabsMAR”, kde budete mať skripty obsahujúce cvičenia. Týmto si zaručíte uloženie histórie cvičení v jednom priečinku, všetky cesty ohľadom našich cvičení budú odkazovať na jedno miesto a pod.

Výhody separovania projektov využijete naplno pri používaní. Prirodzene, ak budete pracovať na niečom inom, tak si vytvoríte nový projekt. V pravom hornom rohu RStudia máte vypísaný teraz spustený projekt a pod šipčkou ponúkne ostatné, medzi ktorými sa môžete prepínať alebo dokonca otvoriť naraz viacej projektov, kde môžete separátne počítať.


Prezentovanie a “Publikovanie”

R ponúka za pomoci RStudia širokú škálu prezentovania vaších výstupov (práce) cez dva kanály

RMarkdawn dáva možnosť exportovať priamo z RStudia PDF, HTML alebo Word document. Teda máte možnosť vytvárať od web stránky po prezentáciu čokoľvek bez toho, aby ste sa učili nový sintax stačí vedieť Markdown. Základy RMarkdown sa dajú osvojiť aj za jednu hodinu. Poznámka: MD dokonca rozumie LaTex kódu čiže rovnaké matematické formule skompiluje.

Shiny je už trochu náročnejšie a potrebujete kusok viacej, ako len jednu hodinu na osvojenie si základných princípov. Ale vynaložený čas bude určite stáť za to.

RMarkdown sa dá publikovať (hostovať) kdekoľvek, kde máte učet, teda stačí si vyexportovať HTML alebo vytvoriť neplatený účet na Rpubs prepojený na RStudio. Možností je nespočetne.

Shiny ponúka možnosť využitia vlastného Cloud-u alebo ponúka návod na vytvorenie vlastného servera.