選択したデータのコピーを作成せずに、オブジェクト (データ フレーム、行列、ベクトル) からサブセットを選択する方法はありますか?
私は非常に大きなデータセットを扱っていますが、それらを変更することはありません。ただし、便宜上、操作するデータのサブセットを選択することがよくあります。毎回大規模なサブセットのコピーを作成するのはメモリ効率が非常に悪いですが、通常のインデックス作成とsubset
(およびxapply()
関数ファミリーの) 両方で、選択したデータのコピーが作成されます。そこで、この問題を克服できる関数またはデータ構造を探しています。
私のニーズに合うかもしれないいくつかの可能なアプローチは、うまくいけばいくつかのRパッケージに実装されています:
- コピー オン ライトメカニズム。つまり、既存の要素を追加または書き換えるときにのみコピーされるデータ構造。
- データ構造のインデックス情報のみを再作成する必要があり、その内容を必要としない不変データ構造(長さと同じ char 配列へのポインターを保持する小さなオブジェクトのみを作成することによって、文字列から部分文字列を作成するなど)。
xapply()
サブセットを作成しない類似体。