각 열에서 x보다 큰 숫자의 발생 횟수를 계산하는 방법은 무엇입니까?

각 열에서 x보다 큰 숫자의 발생 횟수를 계산하는 방법은 무엇입니까?

각 열에서 특정 숫자(예: 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]}}'

관련 정보