Patch 1 to Reldb - Relational database and graphing tools
Gunnar Stefansson
gunnar at hafro.is
Tue Sep 26 21:39:28 AEST 1989
This is patch 1 to Reldb, the simple collection of programs for
relational database manipulation and plotting, which was posted in
comp.sources.unix a short time ago. Due to the long time lag in
comp.sources.unix, we have had time to do a number of changes to the
programs.
What follows are patches/mods to the conversion routines and
documentation. These include a couple of renamings, solving a couple of
problems which occurred during the original transmission and setting up
a patchlevel.h file.
In the following two postings (patches 2 and 3) we will send out various
other modifications which have improved the plotting stuff by quite a bit.
To insert these patches:
cd to wherever you are keeping the sources
(an ls should give you the directories doc, convert.src
and others)
run this file through 'patch -p' **you MUST use the option**
*** convert.src/S/pretoS Thu Sep 21 19:57:34 1989
--- convert.src/S/pretoS Mon Sep 25 21:49:22 1989
***************
*** 1,25 ****
- #!/bin/sh
- #
- # Convert Prelude file to S files
- #
- # Ideally, the first column in the Prelude file should be a labelling column,
- # e.g. year.
-
- FILE=$1
- cat $FILE > /tmp/tmp$$
- tail +3 < /tmp/tmp$$ | grep -v '\-999 ' > $FILE.s
- ( echo '-f ' ; awk 'NR==1{for(i=1;i<=NF;i++)print $i,"REAL",i}' < /tmp/tmp$$) > $FILE.s.des
- Splus extract $FILE.s
-
- sed -n '3,$s/^\([^ ]*\).*$/"\1"/p' < /tmp/tmp$$ > rownames.txt
- head -1 /tmp/tmp$$ |
- tr ' ' '\012' | sed 's/\(.*\)/"\1"/' > varnames.txt
- NCOL=`wc -l < varnames.txt`
- rm /tmp/tmp$$
- echo 'Now use restore("'$FILE'.s.ext") within Splus, to read the data
- or use x<-matrix(read("'$FILE'.s"),ncol='$NCOL',byrow=TRUE)
- to read the data as a matrix
- and colnames<-read("varnames.txt") to get the column labels
- for the matrix.
- If the first column contained labels, you can use
- rownames<-read("rownames.txt") to get the row labels.'
--- 0 ----
No differences encountered
*** /dev/null Tue Sep 26 10:45:31 1989
--- convert.src/S/reldbtoS Tue Sep 26 09:16:18 1989
***************
*** 0 ****
--- 1,39 ----
+ #!/bin/sh
+ #
+ # Convert Reldb file to S files
+ #
+ # Ideally, the first column in the Reldb file should be a labelling column,
+ # e.g. year.
+ #
+ # S is AT&T's statistical package. This script assumes you are using
+ # the Splus version, but should be easily modified for generic S.
+ #
+ # Most people will want to use S on a workstation running a windowing
+ # system. For such use, it's nice to have this script print out
+ # directions that can then be pasted into S, using the mouse.
+
+ if [ ! -f $1 ]
+ then
+ echo "Usage: 'reldbtoS filenam'"
+ echo "Filename must be specified"
+ exit
+ fi
+
+ FILE=$1
+ cat $FILE > /tmp/tmp$$
+ tail +3 < /tmp/tmp$$ | grep -v '\-999 ' > $FILE.s
+ ( echo '-f ' ; awk 'NR==1{for(i=1;i<=NF;i++)print $i,"REAL",i}' < /tmp/tmp$$) > $FILE.s.des
+ Splus extract $FILE.s
+
+ sed -n '3,$s/^\([^ ]*\).*$/"\1"/p' < /tmp/tmp$$ > rownames.txt
+ head -1 /tmp/tmp$$ |
+ tr ' ' '\012' | sed 's/\(.*\)/"\1"/' > varnames.txt
+ NCOL=`wc -l < varnames.txt`
+ rm /tmp/tmp$$
+ echo 'Now use restore("'$FILE'.s.ext") within Splus, to read the data
+ or use x<-matrix(read("'$FILE'.s"),ncol='$NCOL',byrow=TRUE)
+ to read the data as a matrix
+ and colnames<-read("varnames.txt") to get the column labels
+ for the matrix.
+ If the first column contained labels, you can use
+ rownames<-read("rownames.txt") to get the row labels.'
*** convert.src/Glim/pretoglim Thu Sep 21 19:57:33 1989
--- convert.src/Glim/pretoglim Tue Sep 26 09:07:11 1989
***************
*** 1,24 ****
- :
- # pretoglim.sh -- convert prelude to glim file
- #
- read header
- read dummy
- awk '{ for(i=1;i<NF;i++){
- if($(i)==int($(i)))
- printf("%d ",$(i));
- else if($(i)>1)
- printf("%.6f ",$(i));
- else
- printf("%f ",$(i));
- }
- printf("%.4f\n",$(NF))
- }' > glimdat.junk
- units=`wc -l < glimdat.junk `
- echo "\$units $units
- \$echo
- \$data $header
- \$read" | sed 's/ / \
- /g' > glimcmds.junk
-
- echo 'Data in glimdat.junk, commands in glimcmds.junk'
- echo "Use 'cat glimcmds.junk glimdat.junk command-file | glim' to run "
--- 0 ----
*** /dev/null Tue Sep 26 10:45:31 1989
--- convert.src/Glim/README Tue Sep 26 09:28:47 1989
***************
*** 0 ****
--- 1,5 ----
+ Here is a shell script, reldbtoglim, which converts a reldb file to
+ the stuff needed to read the data into GLIM.
+
+ GLIM is the Generalized Linear Interactive Modelling package
+ distributed by NAG (Numerical Algorithms Group, England).
*** /dev/null Tue Sep 26 10:45:31 1989
--- convert.src/Glim/reldbtoglim Mon Sep 25 21:22:36 1989
***************
*** 0 ****
--- 1,25 ----
+ :
+ # reldbtoglim.sh -- convert prelude to glim file
+ #
+ read header
+ read dummy
+ awk '{ for(i=1;i<NF;i++){
+ if($(i)==int($(i)))
+ printf("%d ",$(i));
+ else if($(i)>1)
+ printf("%.6f ",$(i));
+ else
+ printf("%f ",$(i));
+ }
+ printf("%.4f\n",$(NF))
+ }' > glimdat.junk
+ units=`wc -l < glimdat.junk `
+ echo "\$units $units
+ \$echo
+ \$data $header
+ \$read" | sed 's/ / \
+ /g' > glimcmds.junk
+
+ echo 'Data in glimdat.junk, commands in glimcmds.junk'
+ echo "Use 'cat glimcmds.junk glimdat.junk command-file | glim' to run "
+ echo '(Where "command-file" is your own file of glim-commands)'
No differences encountered
No differences encountered
No differences encountered
*** convert.src/Bmdp/README Thu Sep 21 19:57:36 1989
--- convert.src/Bmdp/README Tue Sep 26 09:31:10 1989
***************
*** 1,4 ****
README
! pretobmdp Converts reldb to BMDP
! Sample input file:
--- 1,4 ----
README
! reldbtobmdp Converts reldb to BMDP
! Sample input file:
***************
*** 6,8 ****
! Sample command:
--- 6,8 ----
! Sample command:
***************
*** 10,12 ****
! Output files:
--- 10,19 ----
! The required argument is the file name.
! Other (optional) arguments are names of
! columns which are to be used as factors.
! This feature is very useful if you have
! a factor with many levels -- Bmdp is
! terrible in its handling of factors.
!
! Output files:
No differences encountered
No differences encountered
*** convert.src/Bmdp/bmdp.test Thu Sep 21 19:57:38 1989
--- convert.src/Bmdp/bmdp.test Tue Sep 26 09:08:07 1989
***************
*** 1,133 ****
-
- else
- echo "will not over write ./convert.src/Bmdp/bmdp.test"
- fi
- if `test ! -s ./convert.src/Bmdp/pretobmdp.sh`
- then
- echo "writting ./convert.src/Bmdp/pretobmdp.sh"
- cat > ./convert.src/Bmdp/pretobmdp.sh << '\Rogue\Monster\'
- #!/bin/sh
- #
- # pretobmdp -- convert reldb to bmdp format
- #
- # Usage: pretobmdp input-file [factors]
- #
- # Converts the input file to BMDP format and sets up a BMDP script
- # to read that file. The runs the script, generates a BMDP data set
- # and suggests a next step.
-
- if [ ! -f "$1" ]
- then
- echo "Usage: pretobmdp input-file [factors]"
- echo "(Input file must be specified)"
- exit 1
- fi
- INFILE=$1
-
- # First set up the correct missing-value notation.
- sed '
- s/^ /* /
- s/ $/ */
- s/ -1 / * /g
- s/ -1 / * /g
- s/ -1 / * /g
- s/ / * /g
- s/ / * /g
- s/ / * /g
- ' < $1 > tmp$$.pre
- # First read Reldb header lines
- read names < $1 # column names
- t=`echo $names | wc -w` # compute number of variables
- bmnames=`echo "$names"|sed 's/ /, /g' | tr ' ' '\012'` # make bmdp name list
- (echo '/PROBLEM TITLE IS '\''Heiti verkefnis'\''.
- /PRINT PAGE=66.
- LINE=80.
- /INPUT VARIABLES ARE '$t'.
- FORMAT IS FREE.
- /VARIABLE NAMES ARE ' "$bmnames". '
- /SAVE FILE IS '\''bmdp.test'\'.'
- CODE IS TEST_DATA.
- NEW.
- /END'
- sed '
- 1,2d
- s/ / /g') < tmp$$.pre > junkfile
-
- # The file 'junkfile' now contains a bmdp-style file, ready e.g. for
- # the program 1v. Running this program will give a bmdp data file,
- # called bmdp.test
-
- echo "junkfile contains a simple bmdp program + data
- WARNING : <tab><tab> was assumed to mean a missing value.
- ALSO <tab>-1<tab> !!! These have been coded to bmdp missing values.
- The following is the output from the command '1d < junkfile'"
-
- 1d < junkfile
-
- echo "The '1d'-run generated bmdp.test, which contains the data in bmdp format"
-
- # Now to give a sample program to read bmdp.test
-
- echo '/PROBLEM TITLE IS '\''Heiti verkefnis'\''.
- /PRINT PAGE=66.
- LINE=80.
- /INPUT FILE IS '\''bmdp.test'\'.'
- CODE IS TEST_DATA.' > 2d.inp
-
- shift
-
- # Remaining arguments are factors
- #
- # When they exist, we will set up a histogram- and
- # multiple regression program (7d.inp and 2v.inp).
- # These are very similar, but not quite the same.
-
- if [ $# -ge 1 ]
- then
- echo -n "Processing your factors:"
- cp 2d.inp 7d.inp
- echo '/GROUP' >> 7d.inp
- for i # Generate a code-stmnt
- do
- echo -n "$i..."
- echo " CODES($i) ARE " >> 7d.inp
- project $i < tmp$$.pre |
- tail +3 |
- sort -u | sed -e 's/$/,/' \
- -e '$s/,$/./' \
- -e '/\*/d' >> 7d.inp
- done
- echo -n "Finishing up..."
- var=`sed -e '1{s/\([^ ]\) .*/\1./
- q
- }' < tmp$$.pre` # Use 1st var as dependent
- echo "VARIABLE=$var" >> 7d.inp
- cp 7d.inp 2v.inp # This is ends the similarity 7d=2v
- echo '/HISTOGRAM
- GROUPING=' >> 7d.inp
- echo "/DESIGN DEPENDENT IS $var.
- GROUPING ARE " >> 2v.inp
- x=`echo $* | sed -e 's/ */,/g' -e 's/$/./'`
- echo $x >> 7d.inp
- echo $x >> 2v.inp
-
- echo '/END' >> 7d.inp
- fi
- echo '/END' >> 2d.inp
-
- echo "Done"
- echo "bmdp.prog contains a bmdp program to read bmdp.test and to
- generate simple statistics.
-
- Your next step(s) should be :
-
- 2d < 2d.inp"
- if [ -f 7d.inp ]
- then
- echo ' 2v < 2v.inp'
- echo ' 2d < 2d.inp'
- echo ' 7d < 7d.inp'
- fi
- echo "and then use the files" *.inp "for future development."
-
- rm -f tmp$$.pre
--- 0 ----
*** /dev/null Tue Sep 26 10:45:31 1989
--- convert.src/Bmdp/reldbtobmdp Mon Sep 25 21:21:27 1989
***************
*** 0 ****
--- 1,125 ----
+ #!/bin/sh
+ #
+ # reldbtobmdp -- convert reldb to bmdp format
+ #
+ # Usage: reldbtobmdp input-file [factors]
+ #
+ # Converts the input file to BMDP format and sets up a BMDP script
+ # to read that file. The runs the script, generates a BMDP data set
+ # and suggests a next step.
+
+ if [ ! -f "$1" ]
+ then
+ echo "Usage: reldbtobmdp input-file [factors]"
+ echo "(Input file must be specified)"
+ exit 1
+ fi
+ INFILE=$1
+
+ # First set up the correct missing-value notation.
+ sed '
+ s/^ /* /
+ s/ $/ */
+ s/ -1 / * /g
+ s/ -1 / * /g
+ s/ -1 / * /g
+ s/ / * /g
+ s/ / * /g
+ s/ / * /g
+ ' < $1 > tmp$$.pre
+ # First read Reldb header lines
+ read names < $1 # column names
+ t=`echo $names | wc -w` # compute number of variables
+ bmnames=`echo "$names"|sed 's/ /, /g' | tr ' ' '\012'` # make bmdp name list
+ (echo '/PROBLEM TITLE IS '\''Stick in your job name here'\''.
+ /PRINT PAGE=66.
+ LINE=80.
+ /INPUT VARIABLES ARE '$t'.
+ FORMAT IS FREE.
+ /VARIABLE NAMES ARE ' "$bmnames". '
+ /SAVE FILE IS '\''bmdp.test'\'.'
+ CODE IS TEST_DATA.
+ NEW.
+ /END'
+ sed '
+ 1,2d
+ s/ / /g') < tmp$$.pre > junkfile
+
+ # The file 'junkfile' now contains a bmdp-style file, ready e.g. for
+ # the program 1v. Running this program will give a bmdp data file,
+ # called bmdp.test
+
+ echo "junkfile contains a simple bmdp program + data
+ WARNING : <tab><tab> was assumed to mean a missing value.
+ ALSO <tab>-1<tab> !!! These have been coded to bmdp missing values.
+ The following is the output from the command '1d < junkfile'"
+
+ 1d < junkfile
+
+ echo "The '1d'-run generated bmdp.test, which contains the data in bmdp format"
+
+ # Now to give a sample program to read bmdp.test
+
+ echo '/PROBLEM TITLE IS '\''Stick in your job name here'\''.
+ /PRINT PAGE=66.
+ LINE=80.
+ /INPUT FILE IS '\''bmdp.test'\'.'
+ CODE IS TEST_DATA.' > 2d.inp
+
+ shift
+
+ # Remaining arguments are factors
+ #
+ # When they exist, we will set up a histogram- and
+ # multiple regression program (7d.inp and 2v.inp).
+ # These are very similar, but not quite the same.
+
+ if [ $# -ge 1 ]
+ then
+ echo -n "Processing your factors:"
+ cp 2d.inp 7d.inp
+ echo '/GROUP' >> 7d.inp
+ for i # Generate a code-stmnt
+ do
+ echo -n "$i..."
+ echo " CODES($i) ARE " >> 7d.inp
+ project $i < tmp$$.pre |
+ tail +3 |
+ sort -u | sed -e 's/$/,/' \
+ -e '$s/,$/./' \
+ -e '/\*/d' >> 7d.inp
+ done
+ echo -n "Finishing up..."
+ var=`sed -e '1{s/\([^ ]\) .*/\1./
+ q
+ }' < tmp$$.pre` # Use 1st var as dependent
+ echo "VARIABLE=$var" >> 7d.inp
+ cp 7d.inp 2v.inp # This is ends the similarity 7d=2v
+ echo '/HISTOGRAM
+ GROUPING=' >> 7d.inp
+ echo "/DESIGN DEPENDENT IS $var.
+ GROUPING ARE " >> 2v.inp
+ x=`echo $* | sed -e 's/ */,/g' -e 's/$/./'`
+ echo $x >> 7d.inp
+ echo $x >> 2v.inp
+
+ echo '/END' >> 7d.inp
+ fi
+ echo '/END' >> 2d.inp
+
+ echo "Done"
+ echo "bmdp.prog contains a bmdp program to read bmdp.test and to
+ generate simple statistics.
+
+ Your next step(s) should be :
+
+ 2d < 2d.inp"
+ if [ -f 7d.inp ]
+ then
+ echo ' 2v < 2v.inp'
+ echo ' 2d < 2d.inp'
+ echo ' 7d < 7d.inp'
+ fi
+ echo "and then use the files" *.inp "for future development."
+
+ rm -f tmp$$.pre
No differences encountered
*** /dev/null Tue Sep 26 10:45:31 1989
--- patchlevel.h Tue Sep 26 09:10:33 1989
***************
*** 0 ****
--- 1 ----
+ #define PATCHLEVEL 1
--
-----------------------------------------------------------------------------
Gunnar Stefansson Uucp: {mcvax,enea}!hafro!gunnar
Marine Research Institute Internet: gunnar at hafro.is
P.O. Box 1390,Reykjavik Tel: +354 1 20240 Fax: +354 1 623790
More information about the Comp.sources.bugs
mailing list