【问题标题】:Add new column based on the values in an existing column根据现有列中的值添加新列
【发布时间】:2013-05-02 22:14:03
【问题描述】:

我有一个制表符分隔的文件,并希望根据现有列中的值添加一个新列。我的文件如下所示:

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”。

谢谢。

【问题讨论】:

  • 听起来像是 AWK 的工作。

标签: unix awk


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-09-29
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多