R passa gli argomenti per valore
Il titolo lo suggerisce già: R passa gli argomenti per valore. Cosa significa? In poche parole, significa che una funzione R non può modificare la variabile che passi a quella funzione. Vediamo un esempio semplice (provalo nella console):
triple <- function(x) {
x <- 3*x
x
}
a <- 5
triple(a)
a
All'interno della funzione triple(), l'argomento x viene sovrascritto con il suo valore per tre. Dopo, questo nuovo x viene restituito. Se chiami questa funzione con una variabile a impostata a 5, ottieni 15. Ma il valore di a è cambiato? Se R passasse a a triple() per riferimento, la sovrascrittura di x dentro la funzione si propagherebbe alla variabile a, fuori dalla funzione. Tuttavia, R passa per valore, quindi gli oggetti R che passi a una funzione non possono mai cambiare a meno che tu non faccia un'assegnazione esplicita. a rimane uguale a 5, anche dopo aver chiamato triple(a).
Sai dire quale delle seguenti affermazioni è false riguardo al seguente pezzo di codice?
increment <- function(x, inc = 1) {
x <- x + inc
x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)
Questo esercizio fa parte del corso
R intermedio
Esercizio pratico interattivo
Passa dalla teoria alla pratica con uno dei nostri esercizi interattivi
Inizia esercizio