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, ayı triple() 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ırUygulamalı interaktif egzersiz
İnteraktif egzersizlerimizden biriyle teoriyi pratiğe dökün
Egzersizi başlat