I've trouble understanding the defining keys and data in hashing. I read the document under
Still I couldn't understand. May I request someone to explain about defining keys and data in hashing in simple terms?
Thanks in advance for any help you offer me.
I am going through some training myself so there are most likely better sources but I will explain something as I understand it to join the conversation:
data want;
merge emphours (in=a)
employees(in=b);
by empid;
if a;
run;
data empinfo;
length empid $6. empln $30. empfn $25. empmi $1. gender $1. startdate 8. emppaylevel $5.;
if _N_ = 1 then do;
declare hash new(dataset: 'employees',ordered: 'y');
new.definekey('empid');
new.definedata('empln','empfn','empmi','gender','startdate','emppaylevel');
new.definedone();
call missing(empln,empfn,empmi,gender,startdate,emppaylevel);
end;
set emphours;
rc = new.find();
drop rc;
format startdate mmddyy10.;
run;
The two pieces of code produce the same results, definekey is the key in the hash table that I am generating and the field that I will be joining on. definedata() is the fields that I want to pull in. This is a simple merge, I am pulling fields from the employee dataset, joining to the emphours dataset. This is a very simple example for hash.
Hope I provided some help.
Mark
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.