Help using Base SAS procedures

Hash Table adds all values in table in stead of only the defined ones

Reply
Occasional Contributor
Posts: 17

Hash Table adds all values in table in stead of only the defined ones

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)
Super User
Posts: 10,018

Re: Hash Table adds all values in table in stead of only the defined ones

Posted in reply to RFLinnenbank
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
Ask a Question
Discussion stats
  • 1 reply
  • 206 views
  • 0 likes
  • 2 in conversation