如何在宏程序里使用IN运算符
作为SAS程序员大家对IN运算符一定很熟悉,几乎每天都在用,最近遇到一个问题,就是我想在宏程序里面使用IN运算符,写完程序运行的时候报错了,由此而知IN运算符是不能再宏程序里使用的,今天我们想给大家介绍的是如何在宏语句中使用IN运算符。
使用时日志报错,这是因为默认情况下,SAS宏解析器并没有开启对IN运算符的支持,而把IN仅当常规字符来处理,而不是运算符。如果我们需要在宏语句中启用IN运算符,则需要开启选项MINOPERATOR。有多种方式可开启此功能,比如SAS配置文件、启动选项、OPTION语句及宏程序参数设置等。比如我们可以用OPTION语句在当前SAS会话中适时开启或关闭对IN运算符的使用:
options MINOPERATOR; /*启用*/;
options NOMINOPERATOR; /*关闭*/;
如果我们只想在当前宏程序模块下运用此运算符,只需要在宏程序参数中加上MINOPERATOR选项。
%macro mymacro(var1=,var2=)/MINOPERATOR MINDELIMITER=' ';
%mend;
默认情况下IN运算符依据空格来对所操作字符串进行判断,如要应用于不同分隔符情形,比如字符串以逗号分隔,可通过选项MINDELIMITER进行相应设置:
options MINDELIMITER=','; /*逗号设置为分隔*/
请前往:http://www.mark-to-win.com/TeacherV2.html?id=166