[R-Forge #2296] Copy-on-:= at column level, DT[,list(...)] shallow copy and add cols to shallow(DT, cols) · Issue #617 · Rdatatable/data.table (original) (raw)

Submitted by: Matt Dowle; Assigned to: Nobody; R-Forge link

Export shallow().

would add reference counter attribute. (Both DT2[1,a:=5L] AND DT[1,a:=5L] would need to copy a. Maybe the ExternalPointer destructor could decrement as well, so a rm(DT2) would automatically take DT back to being the sole copy.

Then with this in place,

DT[, cols, with=FALSE]

and

DT[, list(col1,col2,...)]

could do shallow copies, too. See TO DO in source.

In the meantime, allow shallow() to accept a subset of columns and then use it in duplicated.R to save the copies of the by columns there. Upped priority for this part (easier).