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()函数的种子 |
皆可参考对数据进行处理
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!