awk -log计算列

时间:2014-07-02 01:04:22

标签: math awk

我们想制作第16栏的-log。这是输入:

 95,cpd-7777777,1111,2222,IC50,,5.6,uM,3333,4444,Ki,,0.09,uM,,62.2222,2001-12-06 00:00:00,2000-02-16 00:00:00,Cell,Enzyme

这里第16列是62.2222所以-log(62.2222)应该是" -1.79395"

然而,我们的以下努力将给出一个价值" 4.1307"而不是" -1.79395"。

awk -F"," '{a=log($16);printf"%0.4f\n", a}'

这可能是一个愚蠢的问题,但现在停止我们将近一个小时。我们可以知道是否有任何评论?谢谢!

1 个答案:

答案 0 :(得分:6)

log awk函数计算自然对数,而不是基数-10对数,这是你想要的。要使用自然日志计算负基数-10日志,请执行以下操作:

awk -F"," '{a = -log($16)/log(10); printf("%0.4f\n", a)}'
相关问题