<- function(argüman1, argüman2, ...) {
fonksiyon_adi # Fonksiyonun içeriği
# İşlem yapılacak kod bloğu
return(sonuc) # Opsiyonel: Sonucun dönüşü
}
3 Fonksiyonlar
R ile fonksiyon yazmak, etkili, okunabilir ve sürdürülebilir kod oluşturmanın temel bir unsurudur. Fonksiyonlar çoğu programlama dillerinin çok önemli bir özelliğidir. Yalnızca mevcut fonksiyonları kullanmak yerine, belirli işleri yapmak için kendimize ait fonksiyonlar yazabiliriz. Ama neden fonksiyon yazmalıyız?
Tekrarlardan kaçınmanızı sağlar.
Yeniden kullanımı kolaylaştırır.
Karmaşık komut dosyalarından kaçınmanıza yardımcı olur.
Hata ayıklamayı kolaylaştırır.
Bir fonksiyonun temel kod yapısı aşağıdak gibidir:
Bu yapıda:
fonksiyon_adi
: Fonksiyonun adıdır ve çağrılması gerektiğinde bu ad kullanılır. Mümkün olduğunca kısa ve fonksiyonun işlevini çağrıştıran bir ad kullanılması önerilir.argüman1
,argüman2
, …: Fonksiyonun alabileceği parametrelerdir. Bu parametreler opsiyonel olabilir ve fonksiyonun işlevselliğine göre değişir.# Fonksiyonun içeriği
: Fonksiyonun gerçekleştireceği işlemleri içeren kod bloğudur. Bu blok, fonksiyon çağrıldığında çalıştırılır.return(sonuc)
: Opsiyonel olarak, fonksiyonun bir sonucu veya değeri döndürmesi gerekiyorsa kullanılır.return
ifadesiyle fonksiyonun sonucu belirtilir.
Örneğin aşağıdaki fonksiyon bir x argümanına sahiptir ve işlemlerini bu argüman üzerinde gerçekleştirir.
Buna göre bu fonksiyon aldığı sayının karesini hesaplar ve sonucu döndürür .
# kare alma fonksiyonu
<- function(x) {
f_kare ^2
x
}
f_kare(x=15)
[1] 225
Mesela standart sapma hesaplamak için bir fonksiyon tanımlamamız gerektiğini düşünelim. Standart sapmanın nasıl hesaplandığı aşağıda belitilmiştir. Bu formülasyonu kullanarak bir fonksiyon yazalım.
\[\text{Standart Sapma} = \sqrt{\frac{1}{n} \sum{(x - \bar{x})^2}}\]
# fonksiyonu oluşturalım
<- function(x) {
f_sd <- sqrt(sum((x - mean(x))^2) / (length(x) - 1))
result return(result)
}
# örnek bir vektör oluşturalım
set.seed(123) # Üreteç sabitlenir
<- rnorm(1000, 0, 1) # normal dağılımdan 1000 adet sayı üretilir
x
f_sd(x)
[1] 0.991695
3.1 Varsayılan Argümanlar Nedir?
Varsayılan argümanlar, bir fonksiyonun çağrılması sırasında belirtilmediği takdirde kullanılacak olan önceden belirlenmiş değerlerdir. Bu, fonksiyonun kullanılmasını esnek hale getirir ve bazı parametrelerin belirtilmemesi durumunda fonksiyonun çalışmasını sağlar. Bir fonksiyon tanımlarken, parametrelerin yanına = değer
şeklinde varsayılan değerler atanabilir. Örneğin, aşağıdaki fonksiyon, x
parametresine herhangi bir değer belirtilmediğinde varsayılan olarak 2’yi alır.
<- function(x = 2) {
kare_al return(x^2)
}
# Varsayılan Argümanlar Kullanılmayan Durum:
kare_al(3)
[1] 9
Bu durumda, x
parametresine 3 değeri geçirilmiştir. Dolayısıyla fonksiyon 3’ün karesi olan 9’u döndürür.
# Varsayılan Argümanlar Kullanılan Durum:
kare_al()
[1] 4
Bu durumda ise, x
parametresine herhangi bir değer belirtilmemiştir. Fonksiyon, varsayılan olarak 2’yi alarak 2’nin karesi olan 4’ü döndürür.
Varsayılan Argümanların Faydaları:
Kullanıcıya esneklik sağlar ve belirli parametrelerin belirtilmemesi durumunda fonksiyonun hala çalışmasını sağlar.
Fonksiyonun daha kullanıcı dostu olmasını sağlar, çünkü tüm parametrelerin her zaman belirtilmesi gerekmez.
Kodun daha okunabilir olmasını sağlar, çünkü fonksiyonun ne yaptığını anlamak için varsayılan değerlerin dökümantasyonu gibi ek bilgilere ihtiyaç yoktur.
3.2 Değişken Argümanlar Nedir?
Değişken argümanlar kavramı, bir fonksiyonun istediğiniz sayıda argümanı kabul etmesini sağlar. ...
(ellipsis olarak ifade edilmektedir) işareti, R programlamada değişken argümanları temsil eder. Bu özellik, fonksiyonların daha esnek ve çok amaçlı olmasını sağlar. ...
işareti, bir fonksiyonun değişken sayıda argüman almasına izin verir. Fonksiyon tanımında belirli olmayan argümanlar için kullanılır. Bu şekilde, fonksiyonunuzu daha esnek hale getirebilir ve çeşitli durumlara uyum sağlayabilirsiniz.
<- function(...) {
topla <- sum(...)
toplam return(toplam)
}
# Kullanım
topla(1, 2, 3)
[1] 6
topla(1, 2, 3, 4, 5)
[1] 15
Bu örnekte, topla
fonksiyonu değişken sayıda argüman alır. ...
ifadesi, fonksiyona geçirilen tüm argümanları toplar ve sonucu döndürür.
<- function(..., ayrac = ", ") {
birlestir <- paste(..., sep = ayrac)
metin return(metin)
}
# Kullanım
birlestir("merhaba", "dünya", "nasılsınız?")
[1] "merhaba, dünya, nasılsınız?"
birlestir("elma", "armut", "muz", ayrac = " - ")
[1] "elma - armut - muz"
Bu örnekte, birlestir
fonksiyonu değişken sayıda metin argüman alır. ...
ifadesi, fonksiyona geçirilen her bir metni belirtilen ayıracı kullanarak birleştirir.
Bu örneklerde görüldüğü gibi, ...
işareti R’de fonksiyonlara esneklik kazandırır ve hem değişken hem çoklu sayıda argüman alabilmelerini sağlar. Bu özellik, fonksiyonlarınızı daha genel ve çok amaçlı hale getirmenize olanak tanır.