Мне интересно, как присвоение работает на языке 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
>
Мне кажется, что присваивать значения именованным структурам данных (например, "х" ) можно присваивать значения.
Причина, по которой я спрашиваю, заключается в том, что я пытаюсь реализовать ядро языка R, и я не уверен как справиться с такими заданиями.
Заранее спасибо