R meneruskan argumen berdasarkan nilai
Judulnya sudah memberi petunjuk: R meneruskan argumen berdasarkan nilai (by value). Apa artinya? Singkatnya, sebuah fungsi R tidak dapat mengubah variabel yang Anda masukkan ke fungsi tersebut. Mari lihat contoh sederhana (coba di konsol):
triple <- function(x) {
x <- 3*x
x
}
a <- 5
triple(a)
a
Di dalam fungsi triple(), argumen x ditimpa dengan nilainya dikali tiga. Setelah itu, x yang baru ini dikembalikan. Jika Anda memanggil fungsi ini dengan variabel a bernilai 5, Anda memperoleh 15. Namun, apakah nilai a berubah? Jika R meneruskan a ke triple() by reference, penimpaan x di dalam fungsi akan berdampak hingga ke variabel a di luar fungsi. Namun, R meneruskan by value, sehingga objek R yang Anda teruskan ke fungsi tidak akan pernah berubah kecuali Anda melakukan penetapan nilai (assignment) secara eksplisit. a tetap bernilai 5, bahkan setelah memanggil triple(a).
Dapatkah Anda menentukan pernyataan mana berikut ini yang salah terkait potongan kode berikut?
increment <- function(x, inc = 1) {
x <- x + inc
x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)
Latihan ini adalah bagian dari kursus
R Tingkat Menengah
Latihan interaktif praktis
Ubah teori menjadi tindakan dengan salah satu latihan interaktif kami.
Mulai berolahraga