文字列の発生回数を計算します。

文字列の発生回数を計算します。

次の形式の大規模データベースがあります。

0500506 gi|561108321|ref|NC_018143.2|   71446   0 
0500506 gi|561108321|ref|NC_018143.2|   71447   0
0500508 gi|561108321|ref|NC_018143.2|   71449   0
0500509 gi|561108321|ref|NC_018143.2|   71447   0

私がしたいのは、次のように3番目の列にそれぞれの発生回数を含む新しいテーブルを作成することです。

71446 1 0500506
71447 2 0500506,0500509
71449 1 0500508

重要なのは、行全体が一致しないため、単一の列の値のみが一致することを確認したいと思います。次のいずれかの解決策が利用可能であるとします。 grep を使用した総発生回数の計算しかし、どうなるかはよくわかりません。

本当にありがとう、孟

ベストアンサー1

awkタスクに依存する可能性があります。

awk '{sep=$3 in a?",":"";b[$3]++;
     a[$3]=a[$3]sep$1}; END{for (k in a) print k, b[k], a[k]}' file

おすすめ記事