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).
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
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