SAS表查找脚本

时间:2015-12-20 03:30:19

标签: sas

有人知道如何从SAS中的表中查找值吗?

例如,如果我输入" TBD,"脚本返回"待定,"或者如果我输入" WTF,"该脚本返回' F ** k是什么?"

我一直在这一天工作 - 特别是使用PROC FORMAT和CALL SYMPUT,但是对于最基本的任务,我已经空了。

1 个答案:

答案 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;