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 jednoriadkový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)
}
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