summaryrefslogtreecommitdiff
path: root/lin_reg1.awk
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-x[-rw-r--r--]lin_reg1.awk18
1 files changed, 9 insertions, 9 deletions
diff --git a/lin_reg1.awk b/lin_reg1.awk
index cd3db8e..2d21c29 100644..100755
--- 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])
}
}