大きなファイル (data.frame
またはdata.table
) を保存することによって作成された大きなファイル (1GB) を使用して、そのファイルから行の小さなサブセットを非常に迅速にロードできますか?
(明確にするために追加:私は と同じくらい速いことを意味mmap
します。つまり、実行時間は抽出されたメモリの量にほぼ比例する必要がありますが、データセット全体のサイズは一定です。「データのスキップ」は本質的にゼロコストである必要があります。これは非常にシリアライゼーション形式に応じて、簡単か不可能か、またはその中間です。)
R シリアライゼーション形式により、ファイルの関連部分まで簡単にスキップできることを願っています。
gzip では最初からすべてを解凍する必要があるという理由だけで、これは圧縮ファイルでは不可能であると想定するのは正しいでしょうか?
saveRDS(object, file = "", ascii = FALSE, version = NULL,
compress = TRUE, refhook = NULL)
しかし、バイナリ ( ascii=F
) 非圧縮 ( compress=F
) でこのようなことが可能になることを願っています。ファイルで使用mmap
してから、目的の行と列にすばやくスキップしますか?
私はそれがすでに行われていることを望んでいます、またはこれを可能にし、Rで十分にサポートされている別の形式(合理的にスペース効率の良い)があることを願っています.
私はgdbm
(Pythonから)のようなものを使用し、特定のデータ構造のためにRcppにカスタムシステムを実装しましたが、これには満足していません.
ff
これを投稿した後、私はパッケージ( CRAN ) を少し使ってみましたが、非常に感銘を受けました (character
ただし、ベクターはあまりサポートされていません)。