以下に示すように、タブ区切りの 2 つのファイルがあります。
ファイル A
chr1 123 aa b c d
chr1 234 a b c d
chr1 345 aa b c d
chr1 456 a b c d
....
ファイルB
chr1 123 aa c d e ff
chr1 345 aa e f g gg
chr1 123 aa c d e hh
chr1 567 aa z c a ii
chr1 345 bb x q r kk
chr1 789 df f g s ff
chr1 345 sh d t g ll
...
2つのキー列「chr1」、「123」に基づいて、ファイルBからファイルAに新しい列を追加したい(最初の2列はキー列です)。キー列が両方のファイルで一致する場合、ファイル B の列 7 のデータをファイル A の列 3 に追加する必要があります。
たとえば、(chr1 123) キーはファイル B で 2 回検出されるため、ファイル A の 3 列目には ff と hh がコンマで区切られています。キーが見つからない場合は NA と入力し、出力は次のようになります。
chr1 123 ff,hh aa b c d
chr1 234 NA a b c d
chr1 345 gg,kk,ll aa b c d
chr1 456 NA a b c d
通常は R で行いますが、大規模なデータセットには膨大な時間がかかります。誰かがタスクをスピードアップするための awk ソリューションを提供できますか?