Search
Close this search box.
Search
Close this search box.

Appendix 2: Sample SAS input and recode statements

This snippet of a SAS program consists of two parts: the first part is an example of reading in column binary data, the second is an example of inputting the same data in spread ASCII format
*/


DATA ONE;
INFILE IN LRECL=160 RECFM=F;
INPUT
#1 @26 Q10_1 PUNCH.1
@26 Q10_2 PUNCH.2
@26 Q10_Y PUNCH.12
#9 @5 Q101_1 PUNCH.1
@5 Q101_2 PUNCH.2
@5 Q101_3 PUNCH.3
@5 Q101_X PUNCH.11
@5 Q101_Y PUNCH.11;

IF Q10_1=1 AND Q10_2=0 AND Q10_Y=0 THEN Q10=1;
IF Q10_1=0 AND Q10_2=1 AND Q10_Y=0 THEN Q10=2;
IF Q10_1=0 AND Q10_2=0 AND Q10_Y=1 THEN Q10=99;
IF Q101_1=1 AND Q101_2=0 AND Q101_3=0 AND Q101_X=0 AND Q101_Y=0
THEN Q101=1;
IF Q101_1=0 AND Q101_2=1 AND Q101_3=0 AND Q101_X=0 AND Q101_Y=0
THEN Q101=2;
IF Q101_1=0 AND Q101_2=0 AND Q101_3=1 AND Q101_X=0 AND Q101_Y=0
THEN Q101=3;
IF Q101_1=0 AND Q101_2=0 AND Q101_3=0 AND Q101_X=1 AND Q101_Y=0
THEN Q101=4;
IF Q101_1=0 AND Q101_2=0 AND Q101_3=0 AND Q101_X=0 AND Q101_Y=1
THEN Q101=99;


DATA ONE;
INFILE IN LRECL=960 RECFM=F;
INPUT
#1 @301 Q10_1
@302 Q10_2
@312 Q10_Y
#9 @49 Q101_1
@49 Q101_2
@49 Q101_3
@49 Q101_X
@49 Q101_Y;

IF Q10_1=1 AND Q10_2=0 AND Q10_Y=0 THEN Q10=1;
IF Q10_1=0 AND Q10_2=1 AND Q10_Y=0 THEN Q10=2;
IF Q10_1=0 AND Q10_2=0 AND Q10_Y=1 THEN Q10=99;
IF Q101_1=1 AND Q101_2=0 AND Q101_3=0 AND Q101_X=0 AND Q101_Y=0
THEN Q101=1;
IF Q101_1=0 AND Q101_2=1 AND Q101_3=0 AND Q101_X=0 AND Q101_Y=0
THEN Q101=2;
IF Q101_1=0 AND Q101_2=0 AND Q101_3=1 AND Q101_X=0 AND Q101_Y=0
THEN Q101=3;
IF Q101_1=0 AND Q101_2=0 AND Q101_3=0 AND Q101_X=1 AND Q101_Y=0
THEN Q101=4;
IF Q101_1=0 AND Q101_2=0 AND Q101_3=0 AND Q101_X=0 AND Q101_Y=1
THEN Q101=99;

Skip to content