-1
9990,9999,9999000,999999など多くの種類の欠損値を持つデータセットがあります。しかし、すべてが9990を超えています。私は各24の値の平均をとってみたいと思います。私は次のコマンドで試していますが、私の欲望の出力は得られません。例えばシェルスクリプト内の指定された条件を満たす場合の平均を計算する
awk '{if ($1 < 9990) sum += $1; count++} NR%24==0{print count ? (sum) :9999;sum=count=0}'ifile
:私は、次のデータ
3
3
4
9999
4
99990
13
3
999999
9999
9991
99954
に各3行の平均を必要と私はこれを試みたが、異なる結果を示す:
awk '{if ($1 < 9990)sum += $1; count++} NR%3==0{print count ? (sum/count) :9999;sum=count=0}'ifile
マイ欲求出力
あります3.33
4 Average of 9999 4 99990 is done with 4/1. Because 9999 and 99990 are undefined values.
8 Average of 13 3 999999 is done with (13+8)/2. Because 999999 is an undefined value, so excluded from the average.
9999 All are undefined values, so denoted as 9999.
9999,9991,99954の平均値が9999に等しいのはなぜですか?それ以外の場合は9990を超える値が無視されるのはなぜですか? –
あなたのawkスクリプトは、9990より大きい合計行しかありません。また、24または3の値の平均が必要ですか? 24では、サンプルデータに十分なデータがありません。 –
はい。私は今修正した。しかし、まだ欲望の結果を印刷していない。 – Kay