최대값이 다른 값의 중앙값보다 큰 경우 행 이름을 인쇄하는 방법

최대값이 다른 값의 중앙값보다 큰 경우 행 이름을 인쇄하는 방법

최대값이 나머지 값의 중앙값보다 2배 큰 경우 행 이름을 인쇄하는 방법입니다.

입력하다

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   

산출

g1  s1  20.17
g2  s3  94.0
g7  s1  2.28

답변1

해결책:

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

산출:

g1  s1  20.17
g2  s3  94.0
g7  s1  2.28

관련 정보