根据现有列中的值添加新列

时间:2013-05-02 03:05:19

标签: unix awk

我有一个制表符分隔文件,并希望根据现有列中的值添加新列。我的文件看起来像这样:

CHR  SNP  A1  A2  MAF    NCHROBS
1    rs   G   A   0.001  1432
1    rs   A   C   0.2    1432

我想在新列中将MAF列分为两组:在新列中将小于0.01的值分配为“1”,将大于0.01的值分配为“2”。

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试这个awk one-liner :(我刚刚将新列标题命名为“NEW”)

 awk -v OFS="\t" 'NR==1{print $0,"NEW";next}{print $0,($5>=0.01?2:1)}' file

您的示例的输出是:

CHR     SNP     A1      A2      MAF     NCHROBS NEW
1       rs      G       A       0.001   1432    1
1       rs      A       C       0.2     1432    2