Присваивание в языке R

Мне интересно, как присваивание работает в языке R.

Рассмотрим следующий сеанс оболочки R:

> x <- c(5, 6, 7)
> x[1] <- 10
> x
[1] 10 6 7
>

который я полностью понимаю. Вектор (5, 6, 7) создан и привязан к символ «х». Позже 'x' привязывается к новому вектору (10, 6, 7), потому что векторы являются неизменяемыми структурами данных.

Но что происходит здесь:

> c(4, 5, 6)[1] <- 10
Error in c(4, 5, 6)[1] <- 10 :
  target of assignment expands to non-language object
>

или здесь:

> f <- function() c(4, 5, 6)
> f()[1] <- 10
Error in f()[1] <- 10 : invalid (NULL) left side of assignment
>

Мне кажется, что можно присваивать значения только именованным структурам данных (например, 'x').

Причина, по которой я спрашиваю, заключается в том, что я пытаюсь реализовать ядро ​​языка R и не уверен как быть с такими заданиями.

Заранее спасибо

14
задан Duncan Babbage 7 April 2016 в 03:51
поделиться