【发布时间】:2012-05-29 23:52:51
【问题描述】:
我想知道赋值在 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语言核心,我不确定 如何处理这样的任务。
提前致谢
【问题讨论】:
-
这是个好问题。您可能会在此处的一些答案中找到一些见解:stackoverflow.com/questions/10449366/…
标签: r variable-assignment