OPTIONS LINESIZE=88 PAGESIZE=53 NOCENTER NODATE NONUMBER NOFMTERR; *******************************************************************; * PROJECT NAME: Learning to Use SAS ; * PROGRAM NAME LOCATION DATE PROGRAMMER ; TITLE1 "Source:LEC19P5.SAS Disk 1998#1 11/4/98 EJS " ; * Description: Converting character variables to numeric ; *******************************************************************; PROC FORMAT; VALUE instudyf 0="No" 1="Yes"; DATA d1 ; INPUT @1 id 2. age $5. @9 bdate MMDDYY8.; cdate=MDY(11,1,95); agen=INT((cdate-bdate)/365.25); *********************************************; *** Set age equal to birthdate age if present; *** Otherwise, use the self reported age ; *********************************************; IF bdate NE . THEN agef=agen; ELSE IF age NE . THEN agef=age; *********************************************; *** Create a variable that indicates if the ; *** recoded age is within the 18-24 range ; *********************************************; IF 18 LE agef LE 24 THEN instudy=1; ELSE instudy=0; LABEL age="Char/Age:/AGE" bdate="Birth/Date:/BDATE" cdate="Study/Date:/CDATE" agen="Num/Age/From/BDATE/At/Study/Start:/AGEN" agef="Best/Age:/AGEF" instudy="Subject/In the/Study?:/INSTUDY"; FORMAT instudy instudyf.; CARDS; 01 22 12/16/72 02 >18 . 03 21 4/10/75 04 unkn . 05 24 . 06 25 10/9/70 ; PROC PRINT DATA=d1 SPLIT="/"; ID id; VAR age agen agef instudy; TITLE2 "Table 1. List of Character Age (age) and Numeric Age (agen)"; RUN;