コンピューターの合計 RAM よりも約 10 倍大きいファイルがあります。R オブジェクトに読み込ませようとしています。これにより、ファイルを見て、より管理しやすいチャンクを抽出できるようになります。私はこれに対してさまざまなアプローチを試みましたが、それぞれに問題 (異なる問題) が発生しました。固定幅形式のファイルのコピーと、CSV 形式のファイルのコピーがあります。それ以外の点では、ファイルは同一であると思います。最初の 5000 行を読み取ることができ、固定幅ファイルの各列に仮のフィールド幅があり、両方のファイルの各列に仮のデータ クラスがあります。この時点で、全体的な目的を達成する方法を尋ねているわけではありません。代わりに、エラーの原因としてデータの形式異常を除外 (または証明) したいと考えています。ファイル全体を読み取った場合、これを行う方法がいくつかわかります。そのままではありません。
そこで、私の質問は次のとおりです。ファイル全体をメモリに読み込まずに、R で固定幅または CSV データを 1 行ずつ読み込む方法はありますか。CSV については、次を確認してください。そうでない場合は行番号を返します。• 各フィールドのデータが列クラスと一致する場合、一致しない行番号と列番号または名前を返します。
固定幅の場合、以下をチェックします。 • 文字数が常に同じかどうか。そうでない場合は行番号を返します。• 各フィールドのデータが列クラスと一致しているかどうか。行番号とフィールドの最初の文字の番号、または列番号、または列名でない場合は列名を返します。
最後に、どちらの場合も、(ファイルの最後に到達したことを確認するために) 調べた行の数をメソッドに教えてもらいたいです。また、任意の行のコピーを行番号で抽出する方法が欲しいです。 、それらを見ることができるように(ファイル全体をメモリに読み込まずに)。
固定幅の場合と CSV の場合の両方で、列クラスのチェックは、一部のフィールドまたは文字が存在しないか、形式が正しくない場合に堅牢である必要があります。次の行で。
たぶん、これを行うパッケージまたは関数がありますか? 大きなファイルの問題を除けば、これはかなり標準的なデータ クリーニング タスクのように思えます。
どんな助けでも大歓迎です。
よろしくお願いします。