BookmarkSubscribeRSS Feed
RFLinnenbank
Calcite | Level 5
Hello,

I've been checking up on hash tables and what they could do for me, but even this basic test doesn't work out as expected:

data Hash_TEST;
set TEST_POPULATION point = _n_;

declare hash hh (dataset: 'work.TESTPOPULATIE', hashexp: 10);

hh.DefineKey ('KEYFIELD');
hh.DefineData ('KEYFIELD', 'SECONDFIELD');
hh.DefineDone ();

do until (eof1);
set COMPTABLE end = eof1;
if hh.find() = 0 then output;
end;
stop;

run;

This code results in the matching records, but in stead of only reporting the fields mentioned in "DefineData" I get all of the fields in the TEST_POPULATION table.

What could be a logical explanation for this?
(Could be something very basic, as I only recently found out about these)
1 REPLY 1
Ksharp
Super User
Hi.
You need change ' set TEST_POPULATION point = _n_;' into
[pre]
if _n_ = 0 then set work.TESTPOPULATIE';
[/pre]

to let SAS know what type variable in the hash table.


Ksharp
What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 1231 views
  • 0 likes
  • 2 in conversation