如何在宏程序里使用IN運(yùn)算符

作為SAS程序員大家對(duì)IN運(yùn)算符一定很熟悉,幾乎每天都在用,最近遇到一個(gè)問(wèn)題,就是我想在宏程序里面使用IN運(yùn)算符,寫(xiě)完程序運(yùn)行的時(shí)候報(bào)錯(cuò)了,由此而知IN運(yùn)算符是不能再宏程序里使用的,今天我們想給大家介紹的是如何在宏語(yǔ)句中使用IN運(yùn)算符。
使用時(shí)日志報(bào)錯(cuò),這是因?yàn)槟J(rèn)情況下,SAS宏解析器并沒(méi)有開(kāi)啟對(duì)IN運(yùn)算符的支持,而把IN僅當(dāng)常規(guī)字符來(lái)處理,而不是運(yùn)算符。如果我們需要在宏語(yǔ)句中啟用IN運(yùn)算符,則需要開(kāi)啟選項(xiàng)MINOPERATOR。有多種方式可開(kāi)啟此功能,比如SAS配置文件、啟動(dòng)選項(xiàng)、OPTION語(yǔ)句及宏程序參數(shù)設(shè)置等。比如我們可以用OPTION語(yǔ)句在當(dāng)前SAS會(huì)話中適時(shí)開(kāi)啟或關(guān)閉對(duì)IN運(yùn)算符的使用:
options MINOPERATOR; /*啟用*/;
options NOMINOPERATOR; /*關(guān)閉*/;
如果我們只想在當(dāng)前宏程序模塊下運(yùn)用此運(yùn)算符,只需要在宏程序參數(shù)中加上MINOPERATOR選項(xiàng)。
%macro mymacro(var1=,var2=)/MINOPERATOR MINDELIMITER=' ';
%mend;
默認(rèn)情況下IN運(yùn)算符依據(jù)空格來(lái)對(duì)所操作字符串進(jìn)行判斷,如要應(yīng)用于不同分隔符情形,比如字符串以逗號(hào)分隔,可通過(guò)選項(xiàng)MINDELIMITER進(jìn)行相應(yīng)設(shè)置:
options MINDELIMITER=','; /*逗號(hào)設(shè)置為分隔*/




請(qǐng)前往:http://lygongshang.com/TeacherV2.html?id=166