2015-12-20 5 views
0

Кто-нибудь знает, как искать значения из таблицы в SAS?Сценарий поиска таблицы SAS

Например, если я типа в "TBD" сценарий возвращает "Для того, чтобы определить," или если я типа в "WTF" сценарий возвращает «То, что F ** K?»

I работали над этим весь день - в частности, используя PROC FORMAT и CALL SYMPUT, но для самой основной задачи я пришел пустым.

+0

Опубликуйте свой код формата proc - это будет мой рекомендуемый метод. Там есть хорошая статья - http://www2.sas.com/proceedings/sugi30/001-30.pdf – Reeza

ответ

0

Самый эффективный метод - использование хеш-таблицы.
Определение хеш-таблицы: https://en.wikipedia.org/wiki/Hash_table
Хэш-таблицы в SAS: http://support.sas.com/documentation/cdl/en/lrcon/68089/HTML/default/viewer.htm#n1b4cbtmb049xtn1vh9x4waiioz4.htm
Например, если вы хотите импортировать ключи/значение из таблицы поисков

Var1 Var2 

TBD To be determined 
WTF What the f*ck 
... 

и добавить значение «var2» к столу база

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; 
Смежные вопросы