Projekt R

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.