22  Fonksiyonlar

R üzerinde fonksiyonlar, belirli bir işlevi tekrar tekrar gerçekleştirmek için yazılmış kod yapılarıdır. Bir veri analizi sürecinde veriye farklı aşamalarda aynı adımları uyguladığınızı düşünün.

Aynı kod bloğunu tekrar tekrar yazmak yerine bir fonksiyon oluşturusanız o işlemi rahat bir şekilde tekrar gerçekleştirebilirsiniz.

Genel kural olarak, eğer bir işlemi iki seferden fazla kullanıyorsanız, onu bir fonksiyon haline çevirmeniz iyi olacaktır.

Bir fonksiyonun mutlaka en az bir girdisi ve bir de çıktısı olmalıdır. Parametre kullanımı isteğe bağlıdır. Eğer yazdığınız fonksiyon işlem için farklı değişkenlere ihtiyaç duyuyorsa, parametreleri belirtmelisiniz (Şekil 22.1).

fonksiyon girdi Girdifonksiyon Fonksiyongirdi->fonksiyon cikti Çıktıfonksiyon->cikti parametre Parametreparametre->fonksiyon
Şekil 22.1: Bir fonksiyon, belirli parametreler varlığı altında bir girdiyi alır ve işleyerek çıktı haline dönüştürür

22.1 Örnek fonksiyon

İlk fonksiyonumuz çok basit bir işlemi gerçekleştirsin. İki sayıyı toplasın!

Fonksiyonumuz iki tane girdiye sahip olsun:

  • a
  • b

Çıktısı ise sonuc olsun.

Fonksiyon ismi ise toplam olsun.

toplam <- function(a,b){
    sonuc <- a + b
    return(sonuc)
}

Önce fonksiyon ismini toplam yazdık ve function komutu ile, R’a bir fonsksiyon yazacağımız beyan ettik. Bu fonksiyonun paramtreleri olarak kullanacağımız değişkenleri belirledik (a ve b).

Daha sonra bu değişkenleri kullanarak işimizi gerçekleştirdik ve sonuc değişkenini oluşturduk. Bu sonuç değişkenini ise, return komutu ile geri döndürdük.

Her fonksiyonda mutlaka bir değer geri döndürmelisiniz.

Şimdi fonksiyonu kullanalım:

toplam(a = 5, b = 12)
[1] 17
Önemli

Fonkisyonları kullanmadan önce mutlaka tanımlamalısınız! Eğer fonksiyonu tanımlamazsanız, kullanamazsınız.

Şimdi başka iki örnek kullanalım:

toplam(a = 12, b = 45)
[1] 57

22.2 Başka bir fonksiyon

Şimdi ise, sıcaklık dönüşümü için bir fonksiyon yazalım. Santigrat derece cinsinden bir sıcaklık birimini Kelvin’e çevirelim.

Bu dönüşüm için, santigrat cinsinden dereceye, 273.15 eklememiz gerek.

Yazacağımız fonksiyon santigrat cinsinden sıcaklık birimini alsın ve Kelvin’e çevirsin. Fonkisyonun ismi ise kelvin_donusturucu olsun.

kelvin_donusturucu <- function(derece){
    sonuc <- derece + 273.15
    return(sonuc)
}

Bu fonksiyonu kullanalım şimdi:

kelvin_donusturucu(derece = 30)
[1] 303.15