OK. Here is a way of Hash table. data custinfo ;
infile datalines dsd truncover;
input (custid name addr city st zip code1 code2 code3 code4 ) (: $40.);
datalines;
29348,Frands,101 Main,Centerville,AZ,85522,1,5,,
29074,Frenchs,108 South,Midvale,CA,92141,5,6,7,
23947,Alberts,52 Grant,Jefferson,MI,50852,4a,5,3,4a
92347,Ralphs,786 Hanley,Lewis,KS,60503,4a,2,2,1
32047,Kroger,567 Frost,Scottsdale,TX,45221,6,4a,7,6
29347,AP,678 Barton,Phoenix,AZ,84502,9,B8,4a,
94594,Aldi,901 Wilson,Mesa,AZ,86522,2,1,5,4a
93475,Meijer,345 12th,San Dimas,CA,92622,3,3,,
93479,Bass,354 Appletree,Bernard,WA,90255,1,6,6,
47349,Culvers,987 Peartree,Manzanita,NV,81511,1,5,7,
34978,Mr B,498 Figtree,Leonard,PA,20611,5,4a,,
;
run;
data descriptions ;
infile datalines dsd truncover;
input (code description) ( : $40.) ;
datalines;
1,Broadway
2,Lindell
3,Chouteau
4a,Peachtree
5,Del Rey
6,Grand
7,Pershing
B8,Adobe
9,Revillo
10,Menard
;
run;
data want(drop=i code description);
if _n_ eq 1 then do;
if 0 then set descriptions;
declare hash ha(hashexp:20,dataset:'descriptions');
ha.definekey('code');
ha.definedata('description');
ha.definedone();
end;
set custinfo;
array _c{*} $ code1-code4;
array _d{*} $ 50 code_desc1-code_desc4;
do i=1 to dim(_c);
if ha.find(key: _c{i}) eq 0 then _d{i}=description;
end;
run;
Ksharp
... View more