MulaiMulai sekarang secara gratis

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

Lihat Kursus

Latihan interaktif praktis

Ubah teori menjadi tindakan dengan salah satu latihan interaktif kami.

Mulai berolahraga