DATA Step, Macro, Functions and more

Hashtable Question

Reply
Contributor
Posts: 64

Hashtable Question

I have the following code which replaces country codes from a country code dataset.

 

%macro replace(file,country);
data &file.;
if _n_=1 then do;
if 0 then set country_codes;
declare hash h1 (dataset:'country_codes');
rc=h1.definekey('iso_code');
rc=h1.definedata('country');
rc=h1.definedone();
end;
call missing (of _all_);
set &file.;
rc=h1.find(key:&country.);
drop rc ISO_Code;
if missing(Country) then Country=&country.;
Country=upcase(Country);
run;
%mend replace;
%replace(contacts_all,country);

 

The above code replaces all instances of 'BR' to Brazil but in the final output, one observation of BR still remains. What could be causing this? Thank you.

Super Contributor
Posts: 298

Re: Hashtable Question

Posted in reply to sasmaverick

It is difficult to visualize your probelm.. The answer will be quick if you make us to see your problem in terms of some input data set(even mock will do) and the desired output data set.

Super User
Posts: 11,343

Re: Hashtable Question

Posted in reply to sasmaverick

I would check to see if that value of "BR" is actually " BR" with a not very noticeable leading space.

 

Ask a Question
Discussion stats
  • 2 replies
  • 153 views
  • 0 likes
  • 3 in conversation