2

我想添加一个新列,其值等于列中-log的值3rd。但是,有些字段用NA. 我使用以下代码作为inf这些字段的预期输出。

awk 'NR!=1 {print $1, $2, $3, -1*(log($3))}' File

File

1   rs3    0.341
2   rs4    NA
3   rs5    0.599
4   rs6    NA

Desired output 
                   NEW COLUMN   
1   rs3    0.341   1.074
2   rs4    NA      NA
3   rs5    0.599   0.512   
4   rs6    NA      NA

我怎样才能保留NA在新列中?

谢谢

4

1 回答 1

0

有两个打印语句:如果第 3 列大于零,则打印日志,否则打印原始值。

awk '$3 + 0.0 != 0.0 {print $1, $2, -1*(log($3)) } 
$3 + 0.0 == 0.0 {print $1, $2, $3 }' File
于 2013-09-05T01:46:12.890 回答