
各列で特定の数値(たとえば、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スクリプトでビルドするだけです。
1つの列を計算できますが、すべての列を計算する方法がわかりません。
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]}}'