各行の標準偏差を計算する方法は?

各行の標準偏差を計算する方法は?

61列のファイルがあります。各行の標準偏差(SD)を計算し、最初の列を無視し、最初の列に基づいて結果を印刷しようとしています。各行には異なる列数があり、一部は行にSDを計算するときに使用されない値のみを含みます。

input file
0.0  4  6  5  1  2  9  4  5  1  ..... 
0.5  3  1  
1.0  3  7  8  2  
1.5  3  3  3  4  6  4  5   
2.0  
2.5  6  7  6  9 

ベストアンサー1

これはLinuxの問題ではありません。

awk 'NF>1{ s=0;s2=0;c=NF-1 ;
           for (i=2; i<=NF;i++) { s+=$i ; s2+=$i*$i;}
           # compute sd from c,s and s2
           printf "%f\n",sqrt((s2/c)-(s/c)^2) ;}'

おすすめ記事