如何使用 AWK 唯一表(保留每个唯一 ID 的最大值)



我有一个这样的 TAB 分隔表(第一行是标题):

  symbol    value   chr start   end
  Arrb1 10  chr1    1000    2000
  Arrb1 20  chr1    1000    2000
  Arrb1 30  chr1    1000    2000
  Myc   5   chr2    3000    4000
  Actin 3   chr4    25000   30000
  Actin 5   chr4    25000   30000
    .
    .
    .

我想按第一列(符号)对表格进行唯一处理,如果同一交易品种有多行,请保留具有最大值的行(第 2 列)。所以结果应该看起来像:

  symbol    value   chr start   end
  Arrb1 30  chr1    1000    2000
  Myc   5   chr2    3000    4000
  Actin 5   chr4    25000   30000
    .
    .
    .

我可以使用AWK吗?谢谢!

awk -F't' 'NR==1{print}
 NR>1{if(b[$1]<$2){ a[$1]=$0; b[$1]=$2 }}
 END{for(x in a)print a[x]}' file

如果没有标头。我提供一个较短的。

sort -k1,1 -k2,2nr file |awk '!a[$1]++'

相关内容

  • 没有找到相关文章

最新更新