R - Fungsi

Fungsi adalah sekumpulan pernyataan yang disusun bersama untuk melakukan tugas tertentu. R memiliki sejumlah besar fungsi built-in dan pengguna dapat membuat fungsinya sendiri.

Di R, fungsi adalah objek sehingga juru bahasa R dapat meneruskan kontrol ke fungsi tersebut, bersama dengan argumen yang mungkin diperlukan agar fungsi tersebut menyelesaikan tindakan.

Fungsi tersebut pada gilirannya melakukan tugasnya dan mengembalikan kontrol ke interpreter serta hasil apa pun yang mungkin disimpan di objek lain.

Definisi Fungsi

Fungsi R dibuat dengan menggunakan kata kunci function. Sintaks dasar dari definisi fungsi R adalah sebagai berikut -

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

Komponen Fungsi

Bagian yang berbeda dari suatu fungsi adalah -

  • Function Name- Ini adalah nama sebenarnya dari fungsinya. Itu disimpan di lingkungan R sebagai objek dengan nama ini.

  • Arguments- Argumen adalah placeholder. Saat suatu fungsi dipanggil, Anda meneruskan nilai ke argumen. Argumen bersifat opsional; artinya, suatu fungsi tidak boleh berisi argumen. Argumen juga dapat memiliki nilai default.

  • Function Body - Badan fungsi berisi kumpulan pernyataan yang mendefinisikan apa yang dilakukan fungsi.

  • Return Value - Nilai kembali dari suatu fungsi adalah ekspresi terakhir dalam badan fungsi yang akan dievaluasi.

R memiliki banyak in-builtfungsi yang bisa langsung dipanggil dalam program tanpa mendefinisikannya terlebih dahulu. Kami juga dapat membuat dan menggunakan fungsi kami sendiri yang disebutuser defined fungsi.

Fungsi Bawaan

Contoh sederhana dari fungsi built-in adalah seq(), mean(), max(), sum(x) dan paste(...)dll. Mereka secara langsung dipanggil oleh program tertulis pengguna. Anda dapat merujuk fungsi R yang paling banyak digunakan.

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

Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -

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

Fungsi yang Ditentukan Pengguna

Kita dapat membuat fungsi yang ditentukan pengguna di R. Fungsi tersebut spesifik untuk apa yang diinginkan pengguna dan setelah dibuat, fungsi tersebut dapat digunakan seperti fungsi bawaan. Di bawah ini adalah contoh bagaimana sebuah fungsi dibuat dan digunakan.

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

Memanggil Fungsi

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

Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -

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

Memanggil Fungsi tanpa Argumen

# 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()

Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -

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

Memanggil Fungsi dengan Nilai Argumen (menurut posisi dan nama)

Argumen ke panggilan fungsi dapat diberikan dalam urutan yang sama seperti yang didefinisikan dalam fungsi atau dapat diberikan dalam urutan yang berbeda tetapi ditetapkan ke nama argumen.

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

Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -

[1] 26
[1] 58

Memanggil Fungsi dengan Argumen Default

Kita dapat menentukan nilai argumen dalam definisi fungsi dan memanggil fungsi tanpa memberikan argumen apa pun untuk mendapatkan hasil default. Tapi kita juga bisa memanggil fungsi seperti itu dengan memberikan nilai baru dari argumen dan mendapatkan hasil non default.

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

Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -

[1] 18
[1] 45

Evaluasi Fungsi Malas

Argumen ke fungsi dievaluasi secara malas, yang artinya argumen ke fungsi hanya dievaluasi saat diperlukan oleh badan fungsi.

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

Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -

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