summaryrefslogtreecommitdiff
path: root/diff.awk
diff options
context:
space:
mode:
authorwukong <wukong@longaeva>2019-10-22 19:57:00 -0700
committerwukong <wukong@longaeva>2019-10-22 19:57:00 -0700
commitc1ec2518f46cd011ef79c7e7b08265a9053c92b6 (patch)
treeb6cc20703fa62640e7171c4b20ad9d2efca0a30a /diff.awk
parent9efa8c077a4f9cea4b057f8b98104a34e38bcbfd (diff)
added (prev_data ~ number) check to diff;
added ($x ~ number) check to lin_reg; added gaussian expressions gaussian;
Diffstat (limited to 'diff.awk')
-rw-r--r--diff.awk39
1 files changed, 21 insertions, 18 deletions
diff --git a/diff.awk b/diff.awk
index 1d1f72d..ba452c7 100644
--- a/diff.awk
+++ b/diff.awk
@@ -5,6 +5,7 @@
BEGIN {
OFS = FS
+ # OFMT = "%.9g"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
@@ -13,7 +14,7 @@ BEGIN {
}
NR == 1 {
- ### orig data columns
+ # orig data columns
for (n=1; n<=NF; n++) {
if ($n !~ number) {
header[n] = $n
@@ -27,7 +28,7 @@ NR == 1 {
printf(OFS)
}
- ### diff columns
+ # diff columns
for (n=1; n<=NF; n++) {
printf(dheader[n])
printf(n < NF ? OFS : ORS)
@@ -38,29 +39,31 @@ NF {
if (NF > nf_max)
nf_max = NF
- ### data columns
- for (y=1; y<=nf_max; y++) {
- if ($y == header[y] || $y == dheader[y])
+ # data columns
+ for (n=1; n<=nf_max; n++) {
+ if ($n == header[n] || $n == dheader[n])
continue
- if ($y ~ number)
- printf(OFMT, $y)
+ if ($n ~ number)
+ printf(OFMT, $n)
else
printf("")
printf(OFS)
}
- ### diff columns
- for (y=1; y<=nf_max; y++) {
- if ($y == header[y] || $y == dheader[y])
+ # diff columns
+ for (n=1; n<=nf_max; n++) {
+ if ($n == header[n] || $n == dheader[n])
continue
- if ($y ~ number) {
- data[y] = $y
- diff[y] = data[y] - data_prev[y]
- data_prev[y] = data[y]
- printf(OFMT, diff[y])
+ if ($n ~ number) {
+ data[n] = $n
+ if (data_prev[n] ~ number)
+ diff[n] = data[n] - data_prev[n]
+ else
+ diff[n] = ""
+ data_prev[n] = data[n]
}
- else
- diff[y] = ""
- printf(y < nf_max ? OFS : ORS)
+ printf(diff[n])
+ printf(n < nf_max ? OFS : ORS)
}
}
+