summaryrefslogtreecommitdiff
path: root/lin_reg.awk
diff options
context:
space:
mode:
authorwukong <wukong@longaeva>2018-06-16 21:06:25 -0700
committerwukong <wukong@longaeva>2018-06-16 21:06:25 -0700
commit39d1486694b3baac5bfafe11f73e179530d6c109 (patch)
tree5d44a81df33a27af133e0c3a47f414e305e9d97d /lin_reg.awk
parentce5e0a8f088e19e8ebe9a27d8efd4207363791af (diff)
added improvements from diff to diff1; increased number of digits printed in diff, diff1, lin_reg, lin_reg1, and lin_reg2;
Diffstat (limited to '')
-rw-r--r--lin_reg.awk18
1 files changed, 9 insertions, 9 deletions
diff --git a/lin_reg.awk b/lin_reg.awk
index 51f2e87..f82e2e8 100644
--- a/lin_reg.awk
+++ b/lin_reg.awk
@@ -4,6 +4,7 @@
# 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] = "col_" 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])
}