options nocenter validvarname=any; *---Read in space-delimited ascii file; data new_data; infile 'C:\zzy\NLS\default-20100310120425605\default.dat' lrecl=73 missover DSD DLM=' ' print; input R0000100 R0536300 R0536401 R0536402 R1193900 R1194000 R1194100 R1235800 R1236300 R1482600 R2553500 R3876300 R3925700 R3989400 R5453700 R5518600 R7216000 R7282900 S1530000 S1531400 ; array nvarlist _numeric_; *---Recode missing values to SAS custom system missing. See SAS documentation for use of MISSING option in procedures, e.g. PROC FREQ; do over nvarlist; if nvarlist = -1 then nvarlist = -9; /* Refused */ if nvarlist = -2 then nvarlist = -9; /* Dont know */ if nvarlist = -3 then nvarlist = -9; /* Invalid missing */ if nvarlist = -4 then nvarlist = -9; /* Valid missing */ if nvarlist = -5 then nvarlist = -9; /* Non-interview */ end; label R0000100 = "PUBID - YTH ID CODE 1997"; label R0536300 = "KEY!SEX (SYMBOL) 1997"; label R0536401 = "KEY!BDATE M/Y (SYMBOL) 1997"; label R0536402 = "KEY!BDATE M/Y (SYMBOL) 1997"; label R1193900 = "CV_AGE(MONTHS)_INT_DATE 1997"; label R1194000 = "CV_AGE_12/31/96 1997"; label R1194100 = "CV_AGE_INT_DATE 1997"; label R1235800 = "CV_SAMPLE_TYPE 1997"; label R1236300 = "REVISED PIAT RAW SCORE 1997"; label R1482600 = "KEY!RACE_ETHNICITY (SYMBOL) 1997"; label R2553500 = "CV_AGE_INT_DATE 1998"; label R3876300 = "CV_AGE_INT_DATE 1999"; label R3925700 = "REVISED PIAT RAW SCORE 1999"; label R3989400 = "REVISED PIAT RAW SCORE 1998"; label R5453700 = "CV_AGE_INT_DATE 2000"; label R5518600 = "REVISED PIAT RAW SCORE 2000"; label R7216000 = "CV_AGE_INT_DATE 2001"; label R7282900 = "REVISED PIAT RAW SCORE 2001"; label S1530000 = "PIAT RAW SCORE_REVISED 2002"; label S1531400 = "CV_AGE_INT_DATE 2002"; /*---------------------------------------------------------------------* * Crosswalk for Reference number & Question name * *---------------------------------------------------------------------* * Uncomment and edit this RENAME statement to rename variables * for ease of use. You may need to use name literal strings * e.g. 'variable-name'n to create valid SAS variable names, or * alter variables similarly named across years. * This command does not guarentee uniqueness * See SAS documentation for use of name literals and use of the * VALIDVARNAME=ANY option. *---------------------------------------------------------------------*/ /* *start* */ RENAME R0000100 = 'id1997'n R0536300 = 'sex1997'n R0536401 = 'KEY!BDATE_M_1997'n R0536402 = 'KEY!BDATE_Y_1997'n R1193900 = 'CV_AGE(MONTHS)_INT_DATE_1997'n R1194000 = 'CV_AGE_12/31/96_1997'n R1194100 = 'age1997'n R1235800 = 'CV_SAMPLE_TYPE_1997'n R1236300 = 'PIAT1997'n R1482600 = 'KEY!RACE_ETHNICITY_1997'n R2553500 = 'age1998'n R3876300 = 'age1999'n R3925700 = 'PIAT1999'n R3989400 = 'PIAT1998'n R5453700 = 'age2000'n R5518600 = 'PIAT2000'n R7216000 = 'age2001'n R7282900 = 'PIAT2001'n S1530000 = 'PIAT2002'n S1531400 = 'age2002'n ; run; proc means data=new_data n mean min max; run; data temp1; set new_data; all=piat1997+ piat1998+piat1999+piat2000 +piat2001+piat2002; if all = -54 then delete; run; data temp2; set temp1; array nvarlist _numeric_; *---Recode missing values to SAS custom system missing. See SAS documentation for use of MISSING option in procedures, e.g. PROC FREQ; do over nvarlist; if nvarlist = -9 then nvarlist = .; /* Refused */ end; run; data temp3; set temp2; keep id1997 sex1997 age1997-age2002 piat1997-piat2002; run; data temp4; set temp3; file "C:\zzy\NLS\default-20100310120425605\piatmath.dat"; put id1997 sex1997 age1997-age2002 piat1997-piat2002; run; /*---------------------------------------------------------------------* * FORMATTED TABULATIONS * *---------------------------------------------------------------------* * You can uncomment and edit the PROC FORMAT and PROC FREQ statements * provided below to obtain formatted tabulations. The tabulations * should reflect codebook values. * * Please edit the formats below reflect any renaming of the variables * you may have done in the first data step. *---------------------------------------------------------------------*/ /* proc format; value vx0f 0='0' 1-999='1 TO 999' 1000-1999='1000 TO 1999' 2000-2999='2000 TO 2999' 3000-3999='3000 TO 3999' 4000-4999='4000 TO 4999' 5000-5999='5000 TO 5999' 6000-6999='6000 TO 6999' 7000-7999='7000 TO 7999' 8000-8999='8000 TO 8999' 9000-9999='9000 TO 9999' ; value vx1f 1='Male' 2='Female' 0='No Information' ; value vx2f 1='1: January' 2='2: February' 3='3: March' 4='4: April' 5='5: May' 6='6: June' 7='7: July' 8='8: August' 9='9: September' 10='10: October' 11='11: November' 12='12: December' ; value vx4f 0-139='0 TO 139: <140' 140-150='140 TO 150' 151-160='151 TO 160' 161-170='161 TO 170' 171-180='171 TO 180' 181-190='181 TO 190' 191-200='191 TO 200' 201-210='201 TO 210' 211-220='211 TO 220' 221-230='221 TO 230' ; value vx5f 0-11='0 TO 11: LESS THAN 12' 12='12' 13='13' 14='14' 15='15' 16='16' 17='17' 18='18' 19-999='19 TO 999: GREATER THAN 18' ; value vx6f 0-11='0 TO 11: LESS THAN 12' 12='12' 13='13' 14='14' 15='15' 16='16' 17='17' 18='18' 19-999='19 TO 999: GREATER THAN 18' ; value vx7f 1='Cross-sectional' 0='Oversample' ; value vx8f 0='0' 1-9='1 TO 9' 10-19='10 TO 19' 20-29='20 TO 29' 30-39='30 TO 39' 40-49='40 TO 49' 50-59='50 TO 59' 60-69='60 TO 69' 70-79='70 TO 79' 80-89='80 TO 89' 90-99='90 TO 99' 100='100' ; value vx9f 1='Black' 2='Hispanic' 3='Mixed Race (Non-Hispanic)' 4='Non-Black / Non-Hispanic' ; value vx10f 0-11='0 TO 11: LESS THAN 12' 12='12' 13='13' 14='14' 15='15' 16='16' 17='17' 18='18' 19-999='19 TO 999: GREATER THAN 18' ; value vx11f 0-11='0 TO 11: LESS THAN 12' 12='12' 13='13' 14='14' 15='15' 16='16' 17='17' 18='18' 19-999='19 TO 999: GREATER THAN 18' ; value vx12f 0='0' 1-9='1 TO 9' 10-19='10 TO 19' 20-29='20 TO 29' 30-39='30 TO 39' 40-49='40 TO 49' 50-59='50 TO 59' 60-69='60 TO 69' 70-79='70 TO 79' 80-89='80 TO 89' 90-99='90 TO 99' 100-99999999='100 TO 99999999: 100+' ; value vx13f 0='0' 1-9='1 TO 9' 10-19='10 TO 19' 20-29='20 TO 29' 30-39='30 TO 39' 40-49='40 TO 49' 50-59='50 TO 59' 60-69='60 TO 69' 70-79='70 TO 79' 80-89='80 TO 89' 90-99='90 TO 99' 100='100' ; value vx14f 14='14' 15='15' 16='16' 17='17' 18='18' 19-20='19 TO 20: 19' 20='20' 21-100='21 TO 100: Age 21 and older' ; value vx15f 0='0' 1-9='1 TO 9' 10-19='10 TO 19' 20-29='20 TO 29' 30-39='30 TO 39' 40-49='40 TO 49' 50-59='50 TO 59' 60-69='60 TO 69' 70-79='70 TO 79' 80-89='80 TO 89' 90-99='90 TO 99' 100-99999999='100 TO 99999999: 100+' ; value vx16f 14='14' 15='15' 16='16' 17='17' 18='18' 19='19' 20='20' 21='21' 22-100='22 TO 100: Age 22 or greater' ; value vx17f 0='0' 1-9='1 TO 9' 10-19='10 TO 19' 20-29='20 TO 29' 30-39='30 TO 39' 40-49='40 TO 49' 50-59='50 TO 59' 60-69='60 TO 69' 70-79='70 TO 79' 80-89='80 TO 89' 90-99='90 TO 99' 100-99999999='100 TO 99999999: 100+' ; value vx18f 0='0' 1-9='1 TO 9' 10-19='10 TO 19' 20-29='20 TO 29' 30-39='30 TO 39' 40-49='40 TO 49' 50-59='50 TO 59' 60-69='60 TO 69' 70-79='70 TO 79' 80-89='80 TO 89' 90-99='90 TO 99' 100-99999999='100 TO 99999999: 100+' ; value vx19f 14='14' 15='15' 16='16' 17='17' 18='18' 19='19' 20='20' 21='21' 22-100='22 TO 100: Age 22 or greater' ; */ /* *--- Tabulations using reference number variables; proc freq data=new_data; tables _ALL_ /MISSING; format R0000100 vx0f.; format R0536300 vx1f.; format R0536401 vx2f.; format R1193900 vx4f.; format R1194000 vx5f.; format R1194100 vx6f.; format R1235800 vx7f.; format R1236300 vx8f.; format R1482600 vx9f.; format R2553500 vx10f.; format R3876300 vx11f.; format R3925700 vx12f.; format R3989400 vx13f.; format R5453700 vx14f.; format R5518600 vx15f.; format R7216000 vx16f.; format R7282900 vx17f.; format S1530000 vx18f.; format S1531400 vx19f.; run; */ /* *--- Tabulations using default named variables; proc freq data=new_data; tables _ALL_ /MISSING; format PUBID_1997 vx0f.; format KEY!SEX_1997 vx1f.; format KEY!BDATE_M_1997 vx2f.; format CV_AGE(MONTHS)_INT_DATE_1997 vx4f.; format CV_AGE_12/31/96_1997 vx5f.; format CV_AGE_INT_DATE_1997 vx6f.; format CV_SAMPLE_TYPE_1997 vx7f.; format PIAT_RAW_SCORE_REVISED_1997 vx8f.; format KEY!RACE_ETHNICITY_1997 vx9f.; format CV_AGE_INT_DATE_1998 vx10f.; format CV_AGE_INT_DATE_1999 vx11f.; format PIAT_RAW_SCORE_REVISED_1999 vx12f.; format PIAT_RAW_SCORE_REVISED_1998 vx13f.; format CV_AGE_INT_DATE_2000 vx14f.; format PIAT_RAW_SCORE_REVISED_2000 vx15f.; format CV_AGE_INT_DATE_2001 vx16f.; format PIAT_RAW_SCORE_REVISED_2001 vx17f.; format PIAT_RAW_SCORE_REVISED_2002 vx18f.; format CV_AGE_INT_DATE_2002 vx19f.; run; */