【发布时间】:2018-08-20 07:58:32
【问题描述】:
我有一个制表符分隔的文件,见下文: 第一列包含位置编号,1-end 其余的都有一些频率数字。
Position A B C D
1 117 0 1 0
2 4 0 0 16
3 0 5 11 0
4 0 0 0 5
5 0 15 0 0
6 100 0 108 0
7 0 0 147 0
我想将此文件重新格式化为有两列,第一列是保持原样的位置列,第二列包含每个位置的最高频率。
理想输出:
Position HighFreq
1 117
2 16
3 11
4 5
5 15
6 108
7 147
到目前为止,我拥有的是一个选择最高数字并打印的函数:
awk '{max=$1; for(i=2;i<=NF; i++) {if($i>max){max=$i;}};printf"%f\n",max}' file.tsv
我正在尝试为这个问题编写一个 bash 解决方案,但 Perl/Python 是最受欢迎的!
【问题讨论】: