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
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.