summaryrefslogtreecommitdiff
path: root/lin_reg2.awk
diff options
context:
space:
mode:
Diffstat (limited to 'lin_reg2.awk')
-rw-r--r--lin_reg2.awk20
1 files changed, 10 insertions, 10 deletions
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])
}