利用awk 对某一列数据取对数

awk 具有内置算术函数log(x),以e 为底可以对数据取对数运算,而以其他数值为底进行取对数可以基于这一函数进行转换,譬如  以2为底取对数: log(x)/log(2)即可。 下面针对数据第二列进行取对...

awk 具有内置算术函数log(x),以e 为底可以对数据取对数运算,而以其他数值为底进行取对数可以基于这一函数进行转换,譬如  以2为底取对数: log(x)/log(2)即可。

下面针对数据第二列进行取对数,(数据从第二行开始进行计算,第一行直接输出或跳过皆可)

[raop@cluster  13:45:13 /share/nas1/raop/project]$cat test.xls
Gene    FC
A       2
B       1.5
C       0.3
D       10


对数据第一行NR==1 变形输出 Gene\tlog2(FC)

对数据其他行NR!=1 第二列进行对数运算log($1)/log(2)

[raop@cluster  13:50:55 /share/nas1/raop/project]$awk '{if(NR==1)print $1"\tlog2("$2")";if(NR!=1)print $1"\t"log($2)/log(2)}' test.xls
Gene    log2(FC)
A       1
B       0.584963
C       -1.73697
D       3.32193


awk 还涉及其他的一些函数:

atan2(x,y) y,x范围内的余切
cos(x) 余弦函数
exp(x) 求幂
int(x) 取整
log(x) 自然对数
rand() 随机数
sin(x) 正弦
sqrt(x) 平方根
srand(x) x是rand()函数的种子

皆可参考对数据进行处理

  • 发表于 2018-09-30 13:57
  • 阅读 ( 12054 )
  • 分类:linux

0 条评论

请先 登录 后评论
Daitoue
Daitoue

167 篇文章

作家榜 »

  1. omicsgene 702 文章
  2. 安生水 350 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 76 文章
  8. CORNERSTONE 72 文章