如何计算每一行的标准差?

如何计算每一行的标准差?

我有 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) ;}'

相关内容