diff options
| author | wukong <wukong@longaeva> | 2018-06-15 09:17:23 -0700 |
|---|---|---|
| committer | wukong <wukong@longaeva> | 2018-06-15 09:17:23 -0700 |
| commit | ce5e0a8f088e19e8ebe9a27d8efd4207363791af (patch) | |
| tree | 6c325b3b995f984e19418ede16cfa5e5a5c9c2f0 /diff.awk | |
| parent | e8e5644e677af6eac9361902d24e8df72bc2902c (diff) | |
fixed row 1 header issue in diff.awk; other small adjustments in hamming and lin_reg
Diffstat (limited to '')
| -rw-r--r-- | diff.awk | 46 |
1 files changed, 26 insertions, 20 deletions
@@ -4,6 +4,7 @@ # numerical diff along columns BEGIN { + OFMT = "%.9g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" @@ -12,44 +13,49 @@ BEGIN { } NR == 1 { - header_nf = NF + ### orig columns for (n=1; n<=NF; n++) { - printf("%s", $n) - ($n !~ number) ? dheader[n] = "d" $n : dheader[n] = "dcol_" n + ($n !~ number) ? header[n] = $n : header[n] = "col" n + printf(header[n]) + ($n !~ number) ? dheader[n] = "d" $n : dheader[n] = "dcol" n if (n <= NF) - printf("%s", OFS) + printf(OFS) } + ### diff columns for (n=1; n<=NF; n++) { - printf("%s", dheader[n]) + printf(dheader[n]) if (n < NF) - printf("%s", OFS) + 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++) { - if (match(dheader[y], $y)) + ### orig columns + for (y=1; y<=nf_max; y++) { + if ($y == header[y] || $y == dheader[y]) continue if ($y ~ number) - printf("%g", $y) - if (y <= max_nf) - printf("%s", OFS) + printf($y) + else + printf("") + printf(OFS) } - for (y=1; y<=max_nf; y++) { + ### diff columns + for (y=1; y<=nf_max; y++) { if ($y ~ number) { data[y] = $y - (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = "nan" + (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = "" data_prev[y] = data[y] - printf("%g", diff[y]) - if (y < max_nf) - printf("%s", OFS) + printf(diff[y]) + if (y < nf_max) + printf(OFS) } + diff[y] = "" } printf("\n") } |
