other/pipeline/trunk/singlecolumnaverager.awk

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