Mathematicaで遅延読み込みを実装する必要があります。私は処理する必要がある600 MbのCSVテキストファイルを持っています。このファイルには、重複したレコードがたくさん含まれていますメモリにそれらすべてをロードするので、代わりに大きなテキストファイルの処理
1;0;0;13;6
1;0;0;13;6
..........
2;0;0;13;6
2;0;0;13;6
..........
etc.
を、私はレコードとこのレコードがファイルに遭遇した回数を含むリストを作成したいと思います:
{{10000,{1,0,0,13,6}}, {20000,{2,0,0,13,6}}, ...}
私はインポート機能でそれを行う方法を見つけることができませんでした。私は
myProcessingFunctionは、一度に1つのレコードを取得し、データセットを作成しますImport["my_file.csv", "CSV", myProcessingFunction]
のようなものを探しています。 Importやその他のMathematica関数でこれを行うことは可能ですか?
わからない場合は、これをランレングスエンコーディングといいます。 Mathematicaアルゴリズムを実装するためのいくつかのきちんとしたアルゴリズムがあります。 –
@Tim Kemp:アルゴリズムを実行する前に、まずデータをロードする必要があります。データのサイズでは、データを一度に読み込むことはできません。私の質問は、レコードをグループ化する方法ではなく、行ごとにデータをロードする方法です。また、RLEアルゴリズムはレコードのシーケンスを保存します。私はこれを必要としません。私は数だけ必要です。例えば、RLEが3A、4B、4Aになった後のAAABBBBAAAA。私は7A、4Bが必要です。 – Max