awk :
awk 'NR>1{ k=$3*2; f=""; if($2>k) f="s1" OFS $2; else if($4>k) f="s3" OFS $4;
if (f!="") print $1,f }' OFS='\t' file
A saída:
g1 s1 20.17
g2 s3 94.0
g7 s1 2.28
Como posso imprimir o nome da linha se o valor máximo for 2 vezes maior que o valor mediano do restante dos valores.
entrada
name s1 s2 s3
g1 20.17 0.21 0.57
g2 0.19 0.19 94.0
g3 0.15 0.21 0.26
g4 0.09 0.19 0.16
g5 0.019 0.19 0
g7 2.28 0 0
saída
g1 s1 20.17
g2 s3 94.0
g7 s1 2.28
Tags awk