从下面的示例中,我想总结Targets
和miRNA
相似的行的得分:请参阅下文。
Target miRNA Score
NM_198900 hsa-miR-423-5p -0.244
NM_198900 hsa-miR-423-5p -0.6112
NM_1989230 hsa-miR-413-5p -0.644
NM_1989230 hsa-miR-413-5p -0.912
输出:
NM_198900 hsa-miR-423-5p -0.8552
NM_1989230 hsa-miR-413-5p -1.556
答案 0 :(得分:4)
像这样:
awk '{x[$1 " " $2]+=$3} END{for (r in x)print r,x[r]}' file
当它看到每一行时,它将第三个字段($3
)添加到数组x[]
中,并通过连接字段1和2以及它们之间的空格来索引。最后,它会打印x[]
的所有元素。
按照@ jaypal的建议,您可能更喜欢保留标题行(NR == 1)并使用TAB作为输出字段分隔符
awk 'NR==1{OFS="\t";print;next} {x[$1 OFS $2]+=$3} END{for (r in x)print r,x[r]}' file