extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/grid/scripts/singlecolumnaverager.awk

Code
Comments
Other
Rev Date Author Line
6640 11 Mar 22 nicklas 1 #!/bin/awk -f
6640 11 Mar 22 nicklas 2
6640 11 Mar 22 nicklas 3 # Jari Häkkinen, September 2014
6640 11 Mar 22 nicklas 4
6640 11 Mar 22 nicklas 5 BEGIN {
6640 11 Mar 22 nicklas 6     FS="\t";
6640 11 Mar 22 nicklas 7     mean=0;
6640 11 Mar 22 nicklas 8     m2=0;
6640 11 Mar 22 nicklas 9     n=0;
6640 11 Mar 22 nicklas 10 }
6640 11 Mar 22 nicklas 11
6640 11 Mar 22 nicklas 12 {
6640 11 Mar 22 nicklas 13     d=$9 < 0 ? -$9 : $9;
6640 11 Mar 22 nicklas 14     if ((d>0) && (d<500)) {
6640 11 Mar 22 nicklas 15   mean+=d;
6640 11 Mar 22 nicklas 16   m2+=d*d
6640 11 Mar 22 nicklas 17   n++;
6640 11 Mar 22 nicklas 18     }
6640 11 Mar 22 nicklas 19 }
6640 11 Mar 22 nicklas 20
6640 11 Mar 22 nicklas 21 END {
6640 11 Mar 22 nicklas 22     mean/=n;
6640 11 Mar 22 nicklas 23     variance=(m2-n*mean*mean)/(n-1);
6640 11 Mar 22 nicklas 24     std=sqrt(variance);
6640 11 Mar 22 nicklas 25     n/=2;
6640 11 Mar 22 nicklas 26 #    printf("N:        %g\n",n);
6640 11 Mar 22 nicklas 27 #    printf("Mean:     %g\n",mean);
6640 11 Mar 22 nicklas 28 #    printf("Variance: %g\n",variance);
6640 11 Mar 22 nicklas 29 #    printf("std:      %g\n",std);
6640 11 Mar 22 nicklas 30     printf("%ld\t%g\t%g\n",n,mean,std);
6640 11 Mar 22 nicklas 31 }