Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R数据表内部自参考警告_R_Data.table - Fatal编程技术网

R数据表内部自参考警告

R数据表内部自参考警告,r,data.table,R,Data.table,在R中执行以下三行代码时,我收到.internal.selfref警告 从警告中,我认为代码的第二行在没有保留正确引用的情况下复制了data.table 有人能解释这是如何机械地发生的吗 例如,用dt[,y:=1]替换第二行可以解决这个问题,但我不明白为什么 我的R版本是3.1.2 > dt = data.table(x=1:2) > dt[["y"]] = 1 > dt[, z:=1] Warning message: In `[.data.table`(dt, .`:=`(

在R中执行以下三行代码时,我收到.internal.selfref警告

从警告中,我认为代码的第二行在没有保留正确引用的情况下复制了data.table

有人能解释这是如何机械地发生的吗

例如,用dt[,y:=1]替换第二行可以解决这个问题,但我不明白为什么

我的R版本是3.1.2

> dt = data.table(x=1:2)
> dt[["y"]] = 1
> dt[, z:=1]
Warning message:
In `[.data.table`(dt, .`:=`(z, 1)) :
Invalid .internal.selfref detected ...

是的,
[[这个答案中的很多细节都很有趣,在添加
y
的各种方法之前和之后键入
traceem(dt)
。似乎只有
:=
通过引用进行修改,而其他人则移动/复制,甚至是只使用data.table函数的
dt[,“y”]=1
。是的,
[[这个答案中的许多细节都很有趣,在添加
y
的各种方法之前和之后键入
traceem(dt)
。似乎只有
:=
通过引用进行修改,而其他人甚至移动/复制,甚至
dt[,“y”]=1
,它只使用data.table函数。