我发现in
运算符在其实现中有些混乱。看来这是由于其实施的历史。例如,根据sascommunity.org wiki,
你可能还记得“in”最初没有受到好评,所以它确实如此 在V9.13中禁用。
这意味着一次存在不同的实现。
我遇到的一些问题是:
in
的实施方式有所不同吗?in
运算符之前使用了什么来促使创建宏'in'?in
,因为宏工具最初不是SAS的一部分?in
运算符在先前版本的SAS(9.4之前版本)中的实现方式是否有所不同?如果是这样,那么它的实现与当前的方法有何不同?答案 0 :(得分:2)
这是我发现的东西,有点挖掘:
%sysfunc(indexw(list to search,word))
似乎是一种流行的实施方式。据我所知,历史如下:
in
和#
未在SAS宏语言中实现。用户可能已经编写了自己的%in
宏。in
和#
以SAS宏语言实现,没有任何选项可以禁用它们。在某些情况下,当处理包含这些运算符的字符串时,这可能会改变现有用户定义宏的行为 - 我怀疑这就是为什么这个新功能“最初没有得到好评”。in
和#
已从宏语言完全删除(可能这次扰乱了在此功能之后编写宏的人在9.0 ...中介绍。minoperator
和mindelimiter
选项来控制其行为。在将来的某个版本(9.5或更高版本)中,我们可能会得到一个%in
宏运算符,正如执行一个名为{{1的(用户定义的)宏的SAS 9.4中显示的注释所暗示的那样}}:
注意:%IN将成为SAS系统未来版本中SAS宏语言的保留关键字。改变名称 这个宏将避免未来的冲突。