我想了解在R语言中赋值是如何工作的。
考虑下面的R shell会话:
> x <- c(5, 6, 7)
> x[1] <- 10
> x
[1] 10 6 7
>
我完全理解这一点。向量(5,6,7)被创建并绑定到符号“x”上。后来,“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语言核心,并且不确定如何处理此类赋值。
提前致谢。