arunsrinivasan · GitHub

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

Export shallow().

DT2 = shallow(DT)

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

Read the original on github.com ↗