SAS:为什么宏中的 IN 运算符不是默认值



来自示例 35591,

只有在 %MACRO 语句中设置了 MINOPERATOR 选项或作为 SAS® 系统选项时,才能在 %IF 语句中使用 IN 运算符。

需要单独的宏处理选项似乎是一个不必要的复杂性。 当然,由于宏处理的性质,宏 IN 语法及其可以处理的内容必须与 DATA step IN 不同。 但是实现迫使程序员跟踪两个不同的IN,尽管它们在逻辑上是相同的。

  1. 它们在逻辑上不相同吗?
  2. 要求宏 IN 的单独选项是否意味着提醒程序员与 DATA 步入的差异?
  3. 或者,是否存在需要以这种方式实现宏 IN 的情况或向后兼容性问题?

MINOPERATOR的文档。

说明说这仅在 SAS 9.2 及更高版本中可用。 以前,没有用于宏处理的 IN 语句。 宏是字符串,"IN"是有效的字符串。 需要该选项来告知宏处理器 IN 现在是一个关键字。 如果他们只是把它作为一个关键词,可能包含"IN"的遗留代码就会中断。

所以#3。

最新更新