IniziaInizia gratis

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

Visualizza il corso

Esercizio pratico interattivo

Passa dalla teoria alla pratica con uno dei nostri esercizi interattivi

Inizia esercizio