BaşlayınÜcretsiz Başlayın

R argümanları değere göre geçirir

Başlık ipucunu veriyor: R argümanları değere göre geçirir. Bu ne anlama geliyor? Kısaca, bir R fonksiyonunun, o fonksiyona girdiğin değişkeni değiştiremeyeceği anlamına gelir. Basit bir örneğe bakalım (konsolda dene):

triple <- function(x) {
  x <- 3*x
  x
}
a <- 5
triple(a)
a

triple() fonksiyonunun içinde, x argümanı kendi değerinin üç katıyla üzerine yazılır. Sonrasında bu yeni x döndürülür. Bu fonksiyonu değeri 5 olan a değişkeniyle çağırırsan 15 elde edersin. Peki anın değeri değişti mi? Eğer R, atriple() fonksiyonuna referansla (by reference) geçirseydi, fonksiyonun içindeki x üzerindeki değişiklik fonksiyonun dışındaki a değişkenine de yansırdı. Ancak R değere göre geçirir, bu yüzden bir fonksiyona gönderdiğin R nesneleri, açık bir atama yapmadığın sürece asla değişmez. triple(a) çağrısından sonra bile a 5 olarak kalır.

Aşağıdaki kod parçası hakkında aşağıdaki ifadelerden hangisinin yanlış olduğunu söyleyebilir misin?

increment <- function(x, inc = 1) {
  x <- x + inc
  x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)

Bu egzersiz

Orta Düzey R

kursunun bir parçasıdır
Kursu Görüntüle

Uygulamalı interaktif egzersiz

İnteraktif egzersizlerimizden biriyle teoriyi pratiğe dökün

Egzersizi başlat