awkを使用した標準偏差

awkを使用した標準偏差

次のコマンドを使用して、ファイルA名の標準偏差を取得します。

   1 2 3 平均
23.3107 20.0372 21.7236 21.6905

awk '{x[NR]=$0 ;} END{a=$4; for (i in x){ss += (x[i]-a)^2} sd = sqrt(ss/n); SD} '

致命的になる:0で割ってみてください。

上記のコマンドを次のように修正してください。

awk '{x[NR]=$0 ;} END{a=$4; for (i in x){if (a == 0) $6 ="N/A" それ以外の場合 ss += (x[i]-a )^2} sd = sqrt(ss/n) 印刷 $5 = sd} '

しかし、エラーはまだ存在しますか?ありがとうキャス。私が求めていることを理解していますか?

ベストアンサー1

「n」はどこにありますか?

あなたは書く:

sd = sqrt(ss/n)

ところで、コードのどこに変数 "n"を割り当てましたか?表面上、awk「n」は0です。

また、5欄a=$5(3番目の質問、この課題がこのENDセクションにある理由)はどこにありますか?あなたの例には4つの列しか含まれていません。

おすすめ記事