summaryrefslogtreecommitdiff
path: root/mean_avg.awk
diff options
context:
space:
mode:
authorwukong <wukong@longaeva>2019-12-07 15:02:59 -0800
committerwukong <wukong@longaeva>2019-12-07 15:02:59 -0800
commit0c1d68ee8cc2a631d6029285e771ebbfe119995d (patch)
tree894bbec0cf4cbae517a47a5ffe890c7c372b32c4 /mean_avg.awk
parentc1ec2518f46cd011ef79c7e7b08265a9053c92b6 (diff)
code formatting changes to lin_reg scripts;
added range to output of mean scripts;
Diffstat (limited to '')
-rw-r--r--mean_avg.awk9
1 files changed, 5 insertions, 4 deletions
diff --git a/mean_avg.awk b/mean_avg.awk
index e4596b0..bef984d 100644
--- a/mean_avg.awk
+++ b/mean_avg.awk
@@ -20,7 +20,7 @@ NR == 1 {
}
# Welford's 'online' algorithm for variance
-NF > 0 {
+NF {
if (NF > max_nf)
max_nf = NF
for (n=1; n <= NF; n++) {
@@ -28,6 +28,7 @@ NF > 0 {
count[n] += 1
(count[n] == 1 || $n < min[n]) ? min[n] = $n : min[n] = min[n]
(count[n] == 1 || $n > max[n]) ? max[n] = $n : max[n] = max[n]
+ range[n] = max[n] - min[n]
delta0[n] = $n - mean[n]
mean[n] += delta0[n]/count[n]
delta1[n] = $n - mean[n]
@@ -38,12 +39,12 @@ NF > 0 {
}
END {
- print "col", "mean", "std_err", "std_dev", "min", "max", "total", "count"
+ print "col", "mean", "std_err", "std_dev", "range", "min", "max", "total", "count"
for (n=1; n<=max_nf; n++) {
if (header[n])
- print header[n], mean[n], sqrt(var[n]/count[n]), sqrt(var[n]), min[n], max[n], mean[n]*count[n], count[n]
+ print header[n], mean[n], sqrt(var[n]/count[n]), sqrt(var[n]), range[n], min[n], max[n], mean[n]*count[n], count[n]
else
- print "col" n, mean[n], sqrt(var[n]/count[n]), sqrt(var[n]), min[n], max[n], mean[n]*count[n], count[n]
+ print "col" n, mean[n], sqrt(var[n]/count[n]), sqrt(var[n]), range[n], min[n], max[n], mean[n]*count[n], count[n]
}
}