TITLE 'SAS SAMPLE - SAS Workshop 2 Exercise ANSWER'; LIBNAME CLASS 'c:\temp'; DATA CLASS.COUNTRY; infile 'c:\temp\country.dat'; array missing populate area gnp milexp educexp; INPUT DEC 1 ID 2-4 NAME $CHAR26. SSCODE 31-33 CONTIN $ 34-35 DODEV 36 POPULATE 37-43 AREA 44-49 GNP 50-56 MILEXP 57-64 .1 EDUCEXP 65-71 .1; PCGNP = (GNP * 1000) / POPULATE; /* PER CAPITA GNP */ LABEL NAME = "COUNTRY'S NAME" CONTIN = 'CONTINENTAL' DODEV = 'DEGREE OF DEVELOPMENT' GNP = 'GNP IN MILLIONS OF DOLLARS' MILEXP = 'MILITARY EXPENDITURE IN MILLIONS OF $' EDUCEXP = 'EDUCATION EXPENDITURE IN MIL. $'; DO OVER MISSING; IF MISSING = 9999999 OR MISSING = 999999.9 OR MISSING=9999999.9 OR MISSING = 99999.9 THEN MISSING = .; END; IF GNP GE 20000 THEN GNPNEW = 'high'; ELSE IF 10000 < GNP < 20000 THEN GNPNEW='med'; ELSE GNPNEW='low'; IF GNP GE 20000 THEN DOD2 = '3'; ELSE IF 10000 < GNP < 20000 THEN DOD2='2'; ELSE DOD2='1'; IF populate le 4000 THEN pop2= '1'; ELSE IF 4000 < populate < 15000 THEN pop2='2'; ELSE pop2='3'; RUN; proc freq; tables pop2; run;