.txtファイル内の特定の列の中央値を計算し、その値を出力し、出力値が正常であることを確認したいと思います。初期ステップを実行して中央値を出力できますが、出力値が許容範囲内にあるかどうかはわかりません。
次のコードを含む構文エラーメッセージが表示されます。
sort -nk9 filename | awk '{a[i++]=$9;} END {x=int((i+1)/2); y=((a[x-1] + a[x])/2); z=(a[x-1]);
if ((y >= 0.5 && y <= 2) || (z >= 0.5 && z <=2));
{if (x < (i+1)/2)
print "Median OR =", y "ALL OK";
else print "Median OR =", z "ALL OK"};
else print "ERROR - OR outside range 0.5 - 2.0"}'
ベストアンサー1
私の考えでは、これはあなたが望むものです。
awk '{sum+=$9;a[x++]=$9;b[$9]++}b[$9]>Mode{Mode=$9}END{print "Mean: " sum/x "\nMedian: "a[int((x-1)/2)]"\nMode: " Mode}' file
比較的きれいにまとめられています。
awk '
{
sum+=$9
a[x++]=$9
b[$9]++
}
b[$9]>Mode{Mode=$9}
END{
print "Mean: " sum/x
print "Median: "a[int((x-1)/2)]
print "Mode: " Mode
}' file
また、比較にいくつかのロジックを追加したいのですが、変数はx、y、zと呼ばれ、正しい方程式がある場合とない場合があるため、何を比較しているのか実際にはわかりません。