SAS PROGRAMMING HANDOUT #8 SAMPLE INPUTS This first example illustrates some of the issues of length for caharcater variables. DATA CHAR ; INPUT A $; IF _N_=1 THEN B='A'; IF _N_=2 THEN B='AB'; IF _N_=8 THEN B='ABCDEFGHIJKLMNO'; CARDS; A AB ABC ABCD ABCDEF ABCDEFGH ABCDEFGHIJK ABCDEFGHIJKLM ABCDEFGHIJKLMNO ; PROC PRINT; RUN; This second example illustrates LENGTH, SCAN, SUBSTR, LABEL, PROC FORMAT, TITLE, TRIM, LEFT, RIGHT, || ||, etc DATA ONE; LENGTH NAME $ 20; INPUT NAME $ @10 DOB MMDDYY8. @10 DDOOBB $ GENDER $; YR1=SCAN(DDOOBB,3); *this is a character variable; YR2=SUBSTR(DDOOBB,7,2); *this is also a character variable; YR3=1*YR2; *this is a numerical variable; LABEL DOB='DATE OF BIRTH'; CARDS; JIM 09/07/43 M BOB 09/05/40 M SARAH 08/18/72 F ; PROC FORMAT; VALUE $GG 'M'='MALE' 'F'='FEMALE'; DATA TWO; LENGTH NAME $ 20; INPUT NAME $ SALARY; NAME2=TRIM(NAME); NAME3=RIGHT(NAME); NAME4=LEFT(NAME); NAME5=RIGHT(NAME); CARDS; JIM 65000 BOB 100000 SARAH 50000 LAURA 30000 ; PROC SORT DATA=ONE; BY NAME; PROC SORT DATA=TWO; BY NAME; DATA THREE; MERGE ONE TWO; BY NAME; AB=NAME||"-"||GENDER; AB3=NAME3||"-"||GENDER; PROC CONTENTS; PROC PRINT LABEL; TITLE 'DEMOGRAPHIC INFORMATION'; FORMAT DOB DATE7.; FORMAT GENDER $GG.; FORMAT SALARY DOLLAR12.2; RUN;