巨大な (4.5 GB) csv ファイルがあります。基本的な切り取りと貼り付けを実行し、いくつかの列の操作を置き換える必要があります。データはかなり整理されています。唯一の問題は、Excel で操作できないことです。サイズ (2000 行、550000 列)。
ここにデータの一部があります:
ID,Affection,Sex,DRB1_1,DRB1_2,SENum,SEStatus,AntiCCP,RFUW,rs3094315,rs12562034,rs3934834,rs9442372,rs3737728
D0024949,0,F,0101,0401,SS,yes,?,?,A_A,A_A,G_G,G_G
D0024302,0,F,0101,7,SN,yes,?,?,A_A,G_G,A_G,?_?
D0023151,0,F,0101,11,SN,yes,?,?,A_A,G_G,G_G,G_G
4 番目、5 番目、6 番目、7 番目、8 番目、9 番目の列を削除する必要があります。10 列目以降の _ 文字をすべて見つけて、スペース ( ) 文字に置き換える必要があります。すべてを置き換える必要がありますか?ゼロ (0) で; すべてのカンマをタブに置き換える必要があります。最初の行を削除する必要があります (列名があります。2 番目の列では、すべての 0 を 1 に、すべての 1 を 2 に、すべての ? を 0 に置き換える必要があります。F を 2 に、M を 1 に、? を 0 に置き換える必要があります。 3列目;
結果のファイルでは、出力は次のようになります。
D0024949 1 2 A A A A G G G G
D0024302 1 2 A A G G A G 0 0
D0023151 1 2 A A G G G G G G
(入力と出力の両方が行ごとに1行を読み取る必要があり、余分な空白行は必要ありません)Javaでそれを行うメモリ効率の良い方法はありますか(それを行うにはコードが必要です)、またはこの大きなデータを操作するための使用可能なツールExcel の機能を簡単に適用できます。