DATA Step, Macro, Functions and more

Define key and define data in hashing

Reply
Super Contributor
Posts: 426

Define key and define data in hashing

I've trouble understanding the defining keys and data in hashing. I read the document under

 

http://support.sas.com/documentation/cdl/en/lrcon/65287/HTML/default/viewer.htm#n1b4cbtmb049xtn1vh9x...

 

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.

Super User
Posts: 17,867

Re: Define key and define data in hashing

Valued Guide
Posts: 858

Re: Define key and define data in hashing

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

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