Hello,
I'm just beginning to use hash tables and I have the impression that find() only work once per oberservation.
I don't understand how this come.
EDIT: I just found out that rc2=160038
This is my hash table declaration
if _n_=1 then do;
***modelvalues ----------------;
declare hash h1(dataset:'modelData');
h1.definekey ('Germ', 'Category1', 'Category2', 'AgeGroupDALY', 'Gender') ;
h1.definedata('Value');
h1.definedone();
call missing(Germ, Value, Category1, Category2);
* e.g. rc=h1.find(KEY:Germ, KEY:"State", KEY:"property", KEY:AgeGroupDALY, KEY:Gender);
end;
I'm able to find a value, but if I do a second lookup with find() with other keys, 'value' doesn't change like it should be.
It's like the second find doesn't even work or doesnt override 'value'.
rc=h1.find(KEY:Germ, KEY:Edge, KEY:"Probability", KEY:AgeGroupDALY, KEY:Gender);
put "value=" value;
rc2=h1.find(KEY:Germ, KEY:Edge, KEY:"Probability", KEY:"0", KEY:"M");
put "value=" value;
Do I need to close the connection or do something special?
Thank you
Remember Put CALL MISSING() before each and every FIND() to avoid the error result. call missing(Value); /* <---- No need to call missing KEY variable, Only DATA variable */ rc=h1.find(KEY:Germ, KEY:Edge, KEY:"Probability", KEY:AgeGroupDALY, KEY:Gender); put "value=" value; call missing(Value); rc2=h1.find(KEY:Germ, KEY:Edge, KEY:"Probability", KEY:"0", KEY:"M"); put "value=" value;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.