我有一个如下所示的csv文件:
ID1 ID2 AVG1 AVG2
ENSG00000207447 RNU6-2 0.101431 0.163308
ENSG00000207427 SNORA51 0.096551 0
ENSG00000201784 SNORD14A 0.068653 0.0320985
ENSG00000207315 SNORA28 0 0.01936
ENSG00000207787 MIR98 0 0
我想计算 and 的log2比率AVG1
并将AVG2
其打印在每行的 AVG 列旁边,使其看起来像这样:
ID1 ID2 AVG1 AVG2 log2Ratio
ENSG00000207447 RNU6-2 0.101431 0.163308 2.0632577007
ENSG00000207427 SNORA51 0.096551 0 inf
ENSG00000201784 SNORD14A 0.068653 0.0320985 7.105015172
ENSG00000207315 SNORA28 0 0.01936 0
ENSG00000207787 MIR98 0 0 inf
我试过了
$ awk 'NF> 2 { ratio =($3/$4)/log(2) ; print $0, ratio }' testlog2.csv > testlog2_2.csv
and
$ awk 'BEGIN{OFS="\t"} {if ($4==0) {print $0, "inf"} else {print $0, ($3/$4)/log(2)}}' testlog2.csv > testlog2_2.csv
但awk
每当分母为 0 时就会一直崩溃。如果您有任何建议如何绕过它,那就太好了。