我们想制作第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
Run Code Online (Sandbox Code Playgroud)
这里第16列是62.2222所以-log(62.2222)应该是"-1.79395"
但是,我们的后续工作将给出值"4.1307"而不是"-1.79395".
awk -F"," '{a=log($16);printf"%0.4f\n", a}'
Run Code Online (Sandbox Code Playgroud)
这可能是一个愚蠢的问题,但现在停止我们将近一个小时.我们可以知道是否有任何评论?谢谢!
该log函数awk计算自然对数,不是以10为底的对数,这是你想要的.要使用自然日志计算负基数-10日志,请执行以下操作:
awk -F"," '{a = -log($16)/log(10); printf("%0.4f\n", a)}'
Run Code Online (Sandbox Code Playgroud)