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_reg1.awk | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) mode change 100644 => 100755 lin_reg1.awk (limited to 'lin_reg1.awk') diff --git a/lin_reg1.awk b/lin_reg1.awk old mode 100644 new mode 100755 index cd3db8e..2d21c29 --- a/lin_reg1.awk +++ b/lin_reg1.awk @@ -1,7 +1,7 @@ #!/usr/bin/awk -f ### lin_reg1.awk -# simple linear regression between individual text columns +# simple linear regression between columns BEGIN { OFS = "%.9g" @@ -15,16 +15,16 @@ BEGIN { NR == 1 { header_nf = NF for (n=1; n<=NF; n++) { - ($n !~ number) ? header[n] = $n : header[n] = sprintf("col_%g", n) + ($n !~ number) ? header[n] = $n : header[n] = "col" n } } NF != 0 { - if (NF > max_nf) - max_nf = NF + if (NF > nf_max) + nf_max = NF ### iterate over columns - for (y=1; y<= NF; y++) { + for (y=1; y<=nf_max; y++) { if ($y ~ number) { ### mean @@ -39,7 +39,7 @@ NF != 0 { sum_delta2[y] += delta[y]*delta[y] # 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] @@ -64,11 +64,11 @@ 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]) { r2[x,y] = r[x,y]*r[x,y] - printf("\n %f \t (%s) \t = %g(%s) \t + %g", + printf("\n %.9g \t (%s) \t = %.9g(%s) \t + %.9g", 10.0*log(r2[x,y])/log(10), header[y], b[x,y], header[x], a[x,y]) } } -- cgit v1.2.3