[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).