列サブセットを作成し、対応する長さに分割します。

列サブセットを作成し、対応する長さに分割します。

特定の値(>> 2など)でサブセットを指定し、列の最初の数字の合計数で割りたい列があります。どうすればいいですか?

サブセット>= 2の例:

入力:このような列

1  
1    
1  
1  
2  
2  

出力:

2/6=0.33333  

私はawkを使ってこのようなことを試しました。

awk '($1 > 2) / $1' myfile

しかし、これはうまくいきません。

ベストアンサー1

> 2あなたの例には値がないので>= 2

awk '$1 >= 2 { t++ } END { print t/NR }' myfile

これは最初の列の各値を繰り返し、値が2以上の場合に変数を増やしますt。最後に、tレコードの総数(行数)で除算して結果を印刷します。

文字通り式を印刷するには、次のようにします。

awk '$1 >= 2 { t ++ } END { print t"/"NR"="t/NR }' myfile

おすすめ記事