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

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

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
  • 1034 views
  • 0 likes
  • 2 in conversation