summaryrefslogtreecommitdiff
path: root/mean_avg.awk
diff options
context:
space:
mode:
authorwukong <wukong@longaeva>2026-04-10 23:46:12 -0700
committerwukong <wukong@longaeva>2026-04-10 23:46:12 -0700
commit4c4eb1bd8f003b3b57707badd2dd089ed193a896 (patch)
tree15b62907fffd70c46a9b4369df93ab33c6aa88ac /mean_avg.awk
parente7d1781578e846a7b1d634cd43c8fab00a67b883 (diff)
renamed fir window generators;
minor edits to whitespace and comments for more consistent style;
Diffstat (limited to '')
-rw-r--r--mean_avg.awk12
1 files changed, 9 insertions, 3 deletions
diff --git a/mean_avg.awk b/mean_avg.awk
index bef984d..05c93f1 100644
--- a/mean_avg.awk
+++ b/mean_avg.awk
@@ -5,6 +5,7 @@
# input: delimited data as text
# output: list of univariate summary stats
+
BEGIN {
OFS = FS
#sign = "[+-]?"
@@ -14,15 +15,19 @@ BEGIN {
number = "^[+-]?([0-9]+[.]?[0-9]*|[.][0-9]*)([Ee][+-]?[0-9]+)?$"
}
+
+# column headers
NR == 1 {
for (n=1; n<=NF; n++)
($n ~ number) ? header[n] = "col" n : header[n] = $n
}
+
# Welford's 'online' algorithm for variance
-NF {
- if (NF > max_nf)
- max_nf = NF
+NF > 0 {
+ (NF > nf_max) ? nf_max = NF : nf_max = nf_max
+
+ # columns
for (n=1; n <= NF; n++) {
if ($n ~ number) {
count[n] += 1
@@ -38,6 +43,7 @@ NF {
}
}
+
END {
print "col", "mean", "std_err", "std_dev", "range", "min", "max", "total", "count"
for (n=1; n<=max_nf; n++) {