各列で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スクリプトでビルドするだけです。

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]}}'

おすすめ記事