각 열에서 특정 숫자(예: 0.1)보다 큰 값의 발생 횟수를 계산한 다음 각 열에 해당 값을 인쇄하는 방법을 알아내려고 합니다. 다음은 일반적인 데이터(예: 임의 개수의 열에 적용 가능해야 함)를 제외하고 몇 가지 예제 데이터입니다.
Data Sample1 Sample2 Sample3
row1 0.05 0.12 5.00
row2 0.00 5.00 8.75
row3 1.19 0.00 6.78
그러면 원하는 출력은 다음과 같습니다(0.1보다 큰 숫자 계산).
Sample1: 1
Sample2: 2
Sample3: 3
Perl, awk 또는 coreutils는 모두 작동합니다. 데이터 테이블에 일부 통계를 출력하려면 bash 스크립트로 빌드하면 됩니다.
하나의 열을 계산할 수 있지만 모든 열을 계산하는 방법을 모르겠습니다.
gawk -F"\t" 'NR>1 {if ($2>0.1) print $1;}' | wc -l
도움을 주셔서 미리 감사드립니다.
답변1
거의 다 왔습니다. 루프에서 수행하세요.
awk '{for(i=2;i<=NF;i++){if(NR==1)h[i]=$i;else if($i>0.1)x[i]++}}END{for(i in x){print h[i]": "x[i]}}'