Funkcie

Vytvorenie funkcie

Funkcia v jazyku R je blok kódu, ktorý vykonáva špecifickú úlohu a môže byť volaný viackrát s rôznymi argumentmi. Funkcie môžu mať vstupné parametre a vracajú hodnotu. Funkcia sa definuje pomocou kľúčového slova function(). V jazyku R má funkcia nasledovný syntax:

názov_funkcie <- function(vstupné_parametre) { telo_funkcie návratová_hodnota }

Telo funkcie musí byť uzavreté v zložených zátvorkách {}, s výnimkou jedno­riadkových funkcií, kde môžu byť zátvorky vynechané.

názov_funkcie <- function(vstupné_parametre) výraz

Príklady

Vytvorenie funkcie s 2 parametrami:

#prvá možnosť vytvorenia funkcie moja_rovnica<- function(x, y) { sqrt(x^2 + y^2) #návratová hodnota } #druhá možnosť vytvorenia funkcie moja_rovnica <- function(x, y) sqrt(x^2 + y^2)

Vytvorenie funkcie s 5 parametrami a cyklom:

odhad<-function(a0,a1,a2,v1,v2) { for(i in 1:9) #cyklus v ktorom sa iteruje premenná i od 1 po 9 { y[i] <- (a0 + a1*v1[i] + a2*v2[i]) } y }

Volanie funkcie

Pripravenú funkciu môžeme zavolať jednoducho zadaním jej názvu a argumentov, ktoré očakáva. Funkcia sa vykoná a vráti výsledok, ktorý môžeme priradiť do premennej alebo priamo zobraziť.

odhad(b0, b1, b2, Pt, lt) #priame volanie funkcie odh <- odhad(b0, b1, b2, Pt, lt) #priradenie výsledku do premennej

Príklady zložitejších funkcií

Zopár príkladov zložitejších funkcií, ktoré môžu byť užitočné pri práci s dátami:

Funkcia na výpočet štatistiky

Táto funkcia prijíma vektor čísel data a vracia zoznam s tromi základnými štatistickými ukazovateľmi: aritmetický priemer, medián a smerodajnú odchýlku.

vypocitaj_statistiky <- function(data) { list( priemer = mean(data), median = median(data), smerodajna_odchylka = sd(data) ) }

Funkcia na normalizovanie dát

Táto funkcia transformuje vstupný numerický vektor x na hodnoty v rozsahu od 0 do 1. Je to bežný krok pri príprave dát na ďalšie spracovanie, ako napr. pri strojovom učení alebo regresii.

normalizuj <- function(x) { (x - min(x)) / (max(x) - min(x)) }

Funkcia na výpočet exponenciálneho vyhladzovania

áto funkcia implementuje jednoduché exponenciálne vyhladzovanie nad časovým radom data s vyhladzovacím parametrom alpha. Hodnoty sa vyhladzujú iteratívne podľa váženej kombinácie predchádzajúcich údajov a predchádzajúceho vyhladeného bodu.

exponencialne_vyhladenie <- function(data, alpha) { n <- length(data) hladene <- numeric(n) hladene[1] <- data[1] for (i in 2:n) { hladene[i] <- alpha * data[i - 1] + (1 - alpha) * hladene[i - 1] } return(hladene) }
Zdroje:
Cotton, R.: Learning R. USA: O’Reilly Media, 2013. ISBN-13: 978-1449357108
Grolemund, G., Wickham, H.: R for Data Science. O’Reilly Media, 2017. ISBN: 978-1491910399
Hyndman, R. J., Athanasopoulos, G.: Forecasting: Principles and Practice, 3rd ed. Dostupné online

🔍