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; --- lin_reg2.awk | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'lin_reg2.awk') diff --git a/lin_reg2.awk b/lin_reg2.awk index 7553c4e..916b6cb 100644 --- a/lin_reg2.awk +++ b/lin_reg2.awk @@ -1,9 +1,10 @@ #!/usr/bin/awk -f -### lin_reg.awk +### lin_reg2.awk # simple linear regression between columns BEGIN { + OFS = "%.9g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" @@ -14,17 +15,16 @@ BEGIN { NR == 1 { header_nf = NF for (n=1; n<=NF; n++) { - ($n !~ number) ? header[n] = $n : header[n] = n + ($n !~ number) ? header[n] = $n : header[n] = "col" n } } NF != 0 { - #printf("\n%s: %s", NR, $0) - if (NF > max_nf) - max_nf = NF + if (NF > nf_max) + nf_max = NF ### iterate over columns - for (y=1; y<=max_nf; y++) { + for (y=1; y<=nf_max; y++) { if ($y ~ number) { ### mean @@ -42,7 +42,7 @@ NF != 0 { (count[y] - 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = 0 # x = row, y = col - for (x=1; x<=max_nf; x++) { + for (x=1; x<=nf_max; x++) { count[x,y] += 1 sum_xy[x,y] += $x*$y sum_delta_xy[x,y] += delta[x]*delta[y] @@ -81,10 +81,10 @@ NF != 0 { } END { - for (y=1; y<=max_nf; y++) { - for (x=1; x<=max_nf; x++) { + for (y=1; y<=nf_max; y++) { + for (x=1; x<=nf_max; x++) { if (x != y && r[x,y]) { - printf("\n %g \t (%s) \t = (%g +/- %g)(%s) \t + (%g +/- %g)", + printf("\n %.9g \t (%s) \t = (%.9g +/- %.9g)(%s) \t + (%.9g +/- %.9g)", 10.0*log(r[x,y]*r[x,y])/log(10), header[y], b[x,y], b_err[x,y], header[x], a[x,y], a_err[x,y]) } -- cgit v1.2.3