Функція заміни - це вираз виду:

f(x)<-y,

Воно еквівалентно:
x <- "f" <-(x, value = y),
при цьому необхідно визничити заздалегідь f <- (). При визначенні слід пам'ятати, що вона завжди буде мати іменнованний параметр value&nbsp=.

Функція в R - це об'єкт, що складається з аргументів, тіла і оточення (environment), тобто формально вона є замиканням (closure). Для роботи з об'єктами оточення можна використовувати функцію "<<-":

f <- function(u){
u<<- 2 * u
}

Якщо виконати команду:

> u
Error object "u" not found
> f(5)
> u
[1] 10

Взагалі-то, << - використовується для запису в змінну верхнього рівня, але, насправді, він запускає процес висхідного виклику по ієрархії оточення ("матрьошка") і шукає перший рівень, на якому цей об'єкт виявлений:

f <- function(){
int <- function(){ x<<- x+1}
x <- 3
int()
return(x)
}

> f()
[1] 4
> x
Error object "u" not found

До речі, в R багато можливостей зробити  туж саму дію декількома способами:


x <<- x+1

эквивалентно:
assign("x", x+1, pos = .GlobalEnv)