diff options
Diffstat (limited to '')
| -rw-r--r-- | mean.awk | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -3,6 +3,7 @@ ### mean.awk
# calculate mean average of serialized input
+
BEGIN {
OFS = FS
#sign = "[+-]?"
@@ -12,8 +13,9 @@ BEGIN { number = "^[+-]?([0-9]+[.]?[0-9]*|[.][0-9]*)([Ee][+-]?[0-9]+)?$"
}
+
# Welford's 'online' algorithm for variance
-NF {
+NF > 0 {
for (n=1; n<=NF; n++) {
if ($n ~ number) {
count += 1
@@ -29,6 +31,7 @@ NF { }
}
+
END {
print "mean", "std_err", "std_dev", "range", "min", "max", "total", "count"
print mean, sqrt(var/count), sqrt(var), range, min, max, (mean*count), count
|
