summaryrefslogtreecommitdiff
path: root/mean.awk
diff options
context:
space:
mode:
Diffstat (limited to 'mean.awk')
-rw-r--r--mean.awk5
1 files changed, 4 insertions, 1 deletions
diff --git a/mean.awk b/mean.awk
index 069db4c..a57922b 100644
--- a/mean.awk
+++ b/mean.awk
@@ -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