数据表分配运算符更改包含原始名称的变量

时间:2019-04-17 20:37:11

标签: r data.table variable-assignment

以下代码说明了我的问题:

> A <- data.table(value=1)
> A_cols <- names(A)
> A[,new_value:=2]
> A_cols
[1] "value"     "new_value"

在使用A_cols修饰符修改:= data.table时,变量A被间接修改了。这对我来说是出乎意料的。

我了解为什么:=会通过data.table之类的分配来分配modify the value pointed to,但这并不是这里发生的事情。变量B <- A是对我的A_cols应用 function 的结果。

此外,此行为自

以来似乎不一致。
data.table

保留变量> A <- data.table(value=1) > A_num_cols <- ncol(A) > A[,new_value:=2] > A_num_cols [1] 1 不变。

我想知道A_num_cols后面的代码是否是罪魁祸首,但是documentation中没有任何信息可以提供有关为什么应该预期这种行为的线索。

这确实是预期的吗?如果是,是否对此背后的哲学有任何解释以及为什么它似乎不一致地使用?

0 个答案:

没有答案