data a;
input origin $ dest $ flightID $ date date9. rev1st revbusiness revecon;
cards;
ANC RDU IA03400 02DEC1999 15829 28420 68688
ANC RDU IA03400 14DEC1999 20146 26460 72981
ANC RDU IA03400 26DEC1999 20146 23520 59625
ANC RDU IA03401 09DEC1999 15829 22540 58671
ANC RDU IA03401 21DEC1999 20146 22540 65826
akl wtc ijahgk 21dec1999 23424 3445 34343
ams wyt It00879 10dec2001 34343 23243 23434
arn ewe werewr 10dec2000 11768 9375 38463
ath yth werhfdy 15nov1999 767688 678978 68669
;
data b;
input CITY & $ : 15. code $ name & : $ 50. country & : $ 15. ;
cards;
auckland akl international new zealand
amsterdam ams schiphol netherlands
anchorage,ak anc anchorage international airport usa
stockolm arn arlanda sweden
atens(athinai) ath hellinikon international airport greece
;
run;
/*利用数据集b里面的数据建立hash 对象*/
data b;
if 0 then set b (keep=code city name);
if _N_=1 then do;
declare hash airports (dataset:"work.b");
airports.definekey ("code");
airports.definedata ("city","name");
airports.definedone ( );
end;
set a;
airports.find(key:origin);
/*将airports数据集建立的hash对象与数据集a中的对应,依靠关键变量*/
origincity=city;
originairport=name;
run;
proc print;
run;