I may have missed the point totally :smileyblush: but reading the following will give you the table name and variable values on each observation. If you don't want the table name just remove the line with the retain statement (line 4) and the line that inputs tabno (line 13) but keep the delete. Of course you can write out the table name to one data set and the vars to another if you wished using keep statements. Hope this helps! Chris * create data set with 7 variables on each observation - tabno, var1-var6; data readit; infile datalines; * <- change this to suit your data source; retain tabno; * <- holds the table number across records until new value read; format var1-var6 e10.; input @; * < reads a line of data and hangs onto it; * these next lines read the start of the input record; * then check if it starts with the word TABLE; * if it does then read the whole table name into tabno; * the RETAIN statement above will hold onto the value until a new value is read in; * lastly it deletes the obs as not needed; if _infile_ eq: 'TABLE' then do; input @1 tabno $12.; delete; end; * delete the record from input if it starts with the word var; else if _infile_ eq: 'var' then delete; * rest of records must be data!; else input var1-var6 e10.; datalines; TABLE NO. 1 var1 var2 var3 var4 var5 var6 var7 var8 var9 1.0000E+00 0.0000E+00 1.0000E+01 0.0000E+00 1.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00 4.0800E+02 0.0000E+00 8.3687E+00 0.0000E+00 8.3687E+00 1.1806E+01 -3.4368E+00 0.0000E+00 1.0000E+00 4.0833E+02 0.0000E+00 8.7955E+00 0.0000E+00 8.7955E+00 1.1737E+01 -2.9412E+00 0.0000E+00 TABLE NO. 2 var1 var2 var3 var4 var5 var6 var7 var8 var9 1.0000E+00 0.0000E+00 1.0000E+01 0.0000E+00 1.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00 4.0800E+02 0.0000E+00 8.3687E+00 0.0000E+00 8.3687E+00 1.1806E+01 -3.4368E+00 0.0000E+00 1.0000E+00 4.0833E+02 0.0000E+00 8.7955E+00 0.0000E+00 8.7955E+00 1.1737E+01 -2.9412E+00 0.0000E+00 ; run;
... View more