有没有办法从对象(数据框、矩阵、向量)中选择一个子集而不复制所选数据?
我使用相当大的数据集,但从不更改它们。然而,为了方便起见,我经常选择要操作的数据子集。每次复制一个大子集的内存效率非常低,但是普通索引和subset
(以及xapply()
函数系列)都会创建所选数据的副本。所以我正在寻找可以克服这个问题的函数或数据结构。
一些可能适合我的需要并希望在某些 R 包中实现的方法:
- 写时复制机制,即仅在您添加或重写现有元素时复制的数据结构;
- 不可变数据结构,只需要为数据结构重新创建索引信息,而不是它的内容(比如通过只创建包含长度和指向同一个 char 数组的指针的小对象来从字符串中创建子字符串);
xapply()
不创建子集的类似物。