summaryrefslogtreecommitdiff
path: root/diff.awk
diff options
context:
space:
mode:
authorwukong <wukong@longaeva>2018-06-13 21:41:39 -0700
committerwukong <wukong@longaeva>2018-06-13 21:41:39 -0700
commit8875b420a873a360a9484778b487394add318a5e (patch)
treed357816354c5d9d4bc3b1db5c43ceda7933b5e3f /diff.awk
parent6bb6be845b6099550e0a530217633e30522093ad (diff)
added shebang, replaced if-elses with shortcut notation, ported online mean and variance calc to mean.awk
Diffstat (limited to 'diff.awk')
-rw-r--r--diff.awk32
1 files changed, 25 insertions, 7 deletions
diff --git a/diff.awk b/diff.awk
index 1032659..6dc427d 100644
--- a/diff.awk
+++ b/diff.awk
@@ -1,3 +1,5 @@
+#!/usr/bin/awk -f
+
### diff.awk
# numerical diff along columns
@@ -12,11 +14,16 @@ BEGIN {
NR == 1 {
header_nf = NF
for (n=1; n<=NF; n++) {
- if ($n !~ number)
- header[n] = "d" $n
- else
- header[n] = "col_" n
- printf("%s,", header[n])
+ printf("%s", $n)
+ ($n !~ number) ? dheader[n] = "d" $n : dheader[n] = "dcol_" n
+ if (n <= NF)
+ printf("%s", OFS)
+ }
+
+ for (n=1; n<=NF; n++) {
+ printf("%s", dheader[n])
+ if (n < NF)
+ printf("%s", OFS)
}
}
@@ -26,11 +33,22 @@ NF != 0 {
### iterate over columns
for (y=1; y<=max_nf; y++) {
+ if (match(dheader[y], $y))
+ continue
+ if ($y ~ number)
+ printf("%g", $y)
+ if (y <= max_nf)
+ printf("%s", OFS)
+ }
+
+ for (y=1; y<=max_nf; y++) {
if ($y ~ number) {
data[y] = $y
- diff[y] = data[y] - data_prev[y]
- printf("%g,", diff[y])
+ (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = "nan"
data_prev[y] = data[y]
+ printf("%g", diff[y])
+ if (y < max_nf)
+ printf("%s", OFS)
}
}
printf("\n")