From 39d1486694b3baac5bfafe11f73e179530d6c109 Mon Sep 17 00:00:00 2001 From: wukong Date: Sat, 16 Jun 2018 21:06:25 -0700 Subject: added improvements from diff to diff1; increased number of digits printed in diff, diff1, lin_reg, lin_reg1, and lin_reg2; --- diff1.awk | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) (limited to 'diff1.awk') diff --git a/diff1.awk b/diff1.awk index 42cc5a8..e2c4a99 100644 --- a/diff1.awk +++ b/diff1.awk @@ -1,4 +1,4 @@ -#!/usr/bin/awk -f +#!usr/bin/awk -f ### diff.awk # numerical diff along columns @@ -13,30 +13,40 @@ BEGIN { } NR == 1 { - header_nf = NF + ### orig data columns for (n=1; n<=NF; n++) { - if ($n !~ number) - header[n] = "d" $n - else - header[n] = "col_" n - printf("%s,", header[n]) + if ($n !~ number) { + header[n] = $n + dheader[n] = "d" $n + } + else { + header[n] = "col" n + dheader[n] = "dcol" n + } + printf(dheader[n]) + if (n < NF) + printf(OFS) } } -NF != 0 { - if (NF > max_nf) - max_nf = NF +NF { + if (NF > nf_max) + nf_max = NF - ### iterate over columns - for (y=1; y<=max_nf; y++) { + ### data columns + for (y=1; y<=nf_max; y++) { + if ($y == header[y] || $y == dheader[y]) + continue 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] = "" data_prev[y] = data[y] - + printf("%.12g", diff[y]) } + else + diff[y] = "" + if (y < nf_max) + printf(OFS) } - printf("\n") + printf(ORS) } -- cgit v1.2.3