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
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.