내 데이터는 다음과 같습니다.
head retinopathy.pheno.glm.logistic.hybrid1
CHROM POS ID REF ALT A1 A1_FREQ FIRTH? TEST OBS_CT BETA SE Z_STAT P ERRCODE
1 785989 1:785989:T:C C T T 0.154229 N ADD 1608 0.166419 0.0975993 1.70512 0.0881712 .
1 1130727 1:1130727:A:C A C C 0.0870647 N ADD 1608 0.148613 0.127899 1.16196 0.245253 .
1 1156131 1:1156131:T:C T C C 0.161692 N ADD 1608 0.0648246 0.0991692 0.653676 0.51332 .
1 1158631 1:1158631:A:G G A A 0.109142 N ADD 1608 -0.142729 0.111427 -1.28092 0.200221 .
1 1211292 1:1211292:C:T C T T 0.0631219 N ADD 1608 -0.102611 0.147134 -0.6974 0.485552 .
1 1478153 1:1478153:T:C T C C 0.285448 N ADD 1608 0.0407141 0.0791718 0.514251 0.607077 .
...
다음을 포함하는 "DIR"이라는 추가 열을 어떻게 생성합니까?
+ if BETA>0
- if BETA<0
0 if BETA=0
답변1
당신은 시도 할 수 있습니다밀러
$ mlr --pprint --ifs space --repifs put '
$DIR = $BETA>0 ? "+" : $BETA<0 ? "-" : "0"
' retinopathy.pheno.glm.logistic.hybrid1
CHROM POS ID REF ALT A1 A1_FREQ FIRTH? TEST OBS_CT BETA SE Z_STAT P ERRCODE DIR
1 785989 1:785989:T:C C T T 0.154229 N ADD 1608 0.166419 0.0975993 1.70512 0.0881712 . +
1 1130727 1:1130727:A:C A C C 0.0870647 N ADD 1608 0.148613 0.127899 1.16196 0.245253 . +
1 1156131 1:1156131:T:C T C C 0.161692 N ADD 1608 0.0648246 0.0991692 0.653676 0.51332 . +
1 1158631 1:1158631:A:G G A A 0.109142 N ADD 1608 -0.142729 0.111427 -1.28092 0.200221 . -
1 1211292 1:1211292:C:T C T T 0.0631219 N ADD 1608 -0.102611 0.147134 -0.6974 0.485552 . -
1 1478153 1:1478153:T:C T C C 0.285448 N ADD 1608 0.0407141 0.0791718 0.514251 0.607077 . +
데이터가 실제로 분리되는 방식에 따라 합계를 조정해야 할 수도 있습니다 --ifs
.--repifs
답변2
어때요?
awk 'NR==1 { $(NF+1)="DIR" }
NR>1 { if($11>0 ){$(NF+1)="+"}
if($11<0 ){$(NF+1)="-"}
if($11==0){$(NF+1)="0"}
} 1 ' file
답변3
다음 Perl 코드를 사용하여 입력 파일을 변환할 수 있습니다.
$ perl -pale '
$_ .= $" . ("DIR", qw[0 + -][$F[10]<=>0])[$.>1];
' file
출력 데이터:
CHROM POS ID REF ALT A1 A1_FREQ FIRTH? TEST OBS_CT BETA SE Z_STAT P ERRCODE DIR
1 785989 1:785989:T:C C T T 0.154229 N ADD 1608 0.166419 0.0975993 1.70512 0.0881712 . +
1 1130727 1:1130727:A:C A C C 0.0870647 N ADD 1608 0.148613 0.127899 1.16196 0.245253 . +
1 1156131 1:1156131:T:C T C C 0.161692 N ADD 1608 0.0648246 0.0991692 0.653676 0.51332 . +
1 1158631 1:1158631:A:G G A A 0.109142 N ADD 1608 -0.142729 0.111427 -1.28092 0.200221 . -
1 1211292 1:1211292:C:T C T T 0.0631219 N ADD 1608 -0.102611 0.147134 -0.6974 0.485552 . -
1 1478153 1:1478153:T:C T C C 0.285448 N ADD 1608 0.0407141 0.0791718 0.514251 0.607077 . +