有人知道如何从SAS中的表中查找值吗?
例如,如果我输入" TBD,"脚本返回"待定,"或者如果我输入" WTF,"该脚本返回' F ** k是什么?"
我一直在这一天工作 - 特别是使用PROC FORMAT和CALL SYMPUT,但是对于最基本的任务,我已经空了。
答案 0 :(得分:0)
表现最佳的方法是使用哈希表。这是映射键的数据结构 - >值。
哈希表的定义:https://en.wikipedia.org/wiki/Hash_table
SAS中的哈希表:http://support.sas.com/documentation/cdl/en/lrcon/68089/HTML/default/viewer.htm#n1b4cbtmb049xtn1vh9x4waiioz4.htm
例如,如果要从表 lookups
Var1 Var2
TBD To be determined
WTF What the f*ck
...
并将“Var2”值添加到表 base
Var1 OtherVar
WTF 142454
WTF 3453485
TBD 234
...
你可以这样做:
data work.base;
set work.base;
/* Define the new variable in the base dataset */
length Var2 $ 30;
if _N_=1 then do;
/* Declare the hash object retrieving the data from lookups */
declare hash h(dataset:"work.lookups");
/* Define key and value */
h.DefineKey("Var1");
h.DefineData("Var2");
h.DefineDone();
end;
/* With .find method it searches for the Var1 actual value in the *
* hash table; if found, it assigns the corresponding value to Var2 */
h.find();
run;