Skip to content

persistent .internal.selfref #1476

@AmitaiPerlstein

Description

@AmitaiPerlstein

R 3.2.3
Can't get rid of Warning message:
In [.data.table(table, , :=("min.in.day", 60 * hour(table$date.time) + :
Invalid .internal.selfref detected and fixed by taking a (shallow) copy of the data.table so that := can add this new column by reference. At an earlier point, this data.table has been copied by R (or been created manually using structure() or similar). Avoid key<-, names<- and attr<- which in R currently (and oddly) may copy the whole data.table. Use set* syntax instead to avoid copying: ?set, ?setnames and ?setattr.

Matt Dowle supposedly referred to the issue in:
http://stackoverflow.com/questions/20687235/warning-invalid-internal-selfref-detected-when-adding-a-column-to-a-data-tab
but the problem is NOT reproduced in
DT <- data.table(x=1:2) # name the object 'DT'
DT.l <- list(DT=DT) # create a list containing one data.table
y <- DT.l$DT # get back the data.table
y[, bla := 1L] # now add by reference

works fine but warning message will occur

The notorious warning is NOT raised

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions