Podstawy R – Funkcje
Wiemy już z postów rozpoczynających przygodę z R, jak korzystać z funkcji zapisanych w pakietach opracowanych przez innych użytkowników. Teraz nauczymy się jak tworzyć własne funkcje w R. Funkcje przydają się do zamknięcia w nich przetworzeń, które się często powtarzają w naszym kodzie lub dla jego lepszej czytelności. Podstawowa składnia funkcji w R wygląda tak:
nazwa_funkcja = function(argument 1, argument 2, …)
{
ciało funkcji
return(wartość lub obiekt zwracany)
}
Napiszmy funkcję, która będzie mnożyła dowolny wektor przez podaną liczbę, a następnie zsumuje elementy wektora :
funkcja = function(wektor, liczba)
{
rezultat = wektor * liczba
rezultat = sum(rezultat)
return(rezultat)
}
Wykonajmy naszą funkcję dla dwóch zdefiniowanych zmiennych:
v = c(1:5)
n = 4
wynik <- funkcja(v,n)
print(wynik)
W wyniku otrzymujemy:
print(wynik)
[1] 60
Do wykonania funkcji potrzebne jest zdefiniowanie obu argumentów. Co będzie jak ich nie dodamy:
wynik = funcja(v)
Error in funkcja(v) : argument "liczba" is missing, with no default
Wyświetli się błąd, że argument drugi zaginął i nie mamy zdefiniowanej jego wartości domyślnej. Zdefiniujmy zatem domyślną wartość argumentu liczba jako NULL i dopiszmy do naszej funkcji kod, który gdy ten argument będzie miał wartość domyślną zwróci tylko sumę elementów wektora:
funkcja = function(wektor, liczba = NULL)
{
if(is.null(liczba)
{
rezultat = sum(wektor)
} else {
rezultat = wektor * liczba
rezultat = sum(rezultat)
}
return(rezultat)
}
Wykonajmy naszą nową funkcję podając tylko pierwszy argument:
v = c(1:5)
wynik = funckja(v)
print(wynik)
W wyniku otrzymujemy:
print(wynik)
[1] 15
Funkcje są bardzo przydatne, gdy mamy do napisania długi skrypt. Pozwalają na podzielenie głównej części kodu na mniejsze kawałeczki, które kolejnemu użytkownikowi skryptu lub nam będzie łatwiej modyfikować. W kolejnej części kursu pokażemy jak korzystać z możliwości R w analizie danych.