Is there a way to select a subset from objects (data frames, matrices, vectors) without making a copy of selected data?
I work with quite large data sets, but never change them. However often for convenience I select subsets of the data to operate on. Making a copy of a large subset each time is very memory inefficient, but both normal indexing and subset
(and thus xapply()
family of functions) create copies of selected data. So I'm looking for functions or data structures that can overcome this issue.
Some possible approaches that may fit my needs and hopefully are implemented in some R packages:
- copy-on-write mechanism, i.e. data structures that are copied only when you add or rewrite existing elements;
- immutable data structures, that only require recreating indexing information for the data structure, but not its content (like making substring from the string by only creating small object that holds length and a pointer to the same char array);
xapply()
analogues that do not create subsets.