R - Fonksiyonlar

Bir işlev, belirli bir görevi gerçekleştirmek için birlikte düzenlenen bir dizi ifadedir. R'nin çok sayıda yerleşik işlevi vardır ve kullanıcı kendi işlevlerini oluşturabilir.

R'de, bir işlev bir nesnedir, bu nedenle R yorumlayıcısı, işlevin eylemleri gerçekleştirmesi için gerekli olabilecek argümanlarla birlikte işlevi işleve geçirebilir.

İşlev, sırayla görevini yerine getirir ve kontrolü yorumlayıcıya ve diğer nesnelerde saklanabilecek herhangi bir sonucu döndürür.

İşlev Tanımı

Anahtar sözcük kullanılarak bir R işlevi oluşturulur. function. Bir R işlevi tanımının temel sözdizimi aşağıdaki gibidir -

function_name <- function(arg_1, arg_2, ...) {
   Function body 
}

Fonksiyon Bileşenleri

Bir işlevin farklı bölümleri şunlardır:

  • Function Name- Bu, işlevin gerçek adıdır. Bu isimde bir nesne olarak R ortamında depolanır.

  • Arguments- Bir argüman yer tutucudur. Bir işlev çağrıldığında, bağımsız değişkene bir değer iletirsiniz. Bağımsız değişkenler isteğe bağlıdır; yani, bir işlev bağımsız değişken içermeyebilir. Ayrıca argümanlar varsayılan değerlere sahip olabilir.

  • Function Body - İşlev gövdesi, işlevin ne yaptığını tanımlayan bir dizi deyim içerir.

  • Return Value - Bir işlevin dönüş değeri, işlev gövdesindeki değerlendirilecek son ifadedir.

R'nin birçok in-builtönce tanımlanmadan programda doğrudan çağrılabilen işlevler. Ayrıca kendi işlevlerimizi oluşturabilir ve kullanabiliriz:user defined fonksiyonlar.

Yerleşik İşlev

Yerleşik işlevlerin basit örnekleri seq(), mean(), max(), sum(x) ve paste(...)vb. Kullanıcı tarafından yazılan programlar tarafından doğrudan çağrılırlar. En yaygın kullanılan R işlevlerine başvurabilirsiniz .

# Create a sequence of numbers from 32 to 44.
print(seq(32,44))

# Find mean of numbers from 25 to 82.
print(mean(25:82))

# Find sum of numbers frm 41 to 68.
print(sum(41:68))

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[1] 32 33 34 35 36 37 38 39 40 41 42 43 44
[1] 53.5
[1] 1526

Kullanıcı tanımlı İşlev

R'de kullanıcı tanımlı işlevler oluşturabiliriz. Bunlar bir kullanıcının ne istediğine özeldir ve oluşturulduktan sonra yerleşik işlevler gibi kullanılabilirler. Aşağıda bir işlevin nasıl oluşturulup kullanıldığına dair bir örnek verilmiştir.

# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

Bir Fonksiyon Çağırma

# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

# Call the function new.function supplying 6 as an argument.
new.function(6)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36

Bağımsız Değişken Olmadan Bir Fonksiyonu Çağırma

# Create a function without an argument.
new.function <- function() {
   for(i in 1:5) {
      print(i^2)
   }
}	

# Call the function without supplying an argument.
new.function()

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25

Bağımsız Değişken Değerleri İçeren Bir Fonksiyonu Çağırma (konuma ve ada göre)

Bir işlev çağrısına ilişkin argümanlar, işlevde tanımlananlarla aynı sırada sağlanabilir veya farklı bir sırayla sağlanabilir, ancak argümanların adlarına atanabilir.

# Create a function with arguments.
new.function <- function(a,b,c) {
   result <- a * b + c
   print(result)
}

# Call the function by position of arguments.
new.function(5,3,11)

# Call the function by names of the arguments.
new.function(a = 11, b = 5, c = 3)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[1] 26
[1] 58

Varsayılan Bağımsız Değişkenle Bir Fonksiyonu Çağırma

Fonksiyon tanımındaki argümanların değerini tanımlayabilir ve varsayılan sonucu almak için herhangi bir argüman sağlamadan fonksiyonu çağırabiliriz. Ancak bu tür işlevleri, argümanın yeni değerlerini sağlayarak ve varsayılan olmayan bir sonuç elde ederek de çağırabiliriz.

# Create a function with arguments.
new.function <- function(a = 3, b = 6) {
   result <- a * b
   print(result)
}

# Call the function without giving any argument.
new.function()

# Call the function with giving new values of the argument.
new.function(9,5)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[1] 18
[1] 45

Fonksiyonun Tembel Değerlendirilmesi

İşlevlere ilişkin argümanlar tembel olarak değerlendirilir, yani yalnızca işlev gövdesi tarafından ihtiyaç duyulduğunda değerlendirilir.

# Create a function with arguments.
new.function <- function(a, b) {
   print(a^2)
   print(a)
   print(b)
}

# Evaluate the function without supplying one of the arguments.
new.function(6)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[1] 36
[1] 6
Error in print(b) : argument "b" is missing, with no default