来自示例 35591,
只有在 %MACRO 语句中设置了 MINOPERATOR 选项或作为 SAS® 系统选项时,才能在 %IF 语句中使用 IN 运算符。
需要单独的宏处理选项似乎是一个不必要的复杂性。 当然,由于宏处理的性质,宏 IN 语法及其可以处理的内容必须与 DATA step IN 不同。 但是实现迫使程序员跟踪两个不同的IN,尽管它们在逻辑上是相同的。
- 它们在逻辑上不相同吗?
- 要求宏 IN 的单独选项是否意味着提醒程序员与 DATA 步入的差异?
- 或者,是否存在需要以这种方式实现宏 IN 的情况或向后兼容性问题?
MINOPERATOR的文档。
说明说这仅在 SAS 9.2 及更高版本中可用。 以前,没有用于宏处理的 IN 语句。 宏是字符串,"IN"是有效的字符串。 需要该选项来告知宏处理器 IN 现在是一个关键字。 如果他们只是把它作为一个关键词,可能包含"IN"的遗留代码就会中断。
所以#3。