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

标签 sas sas-macro

来自 Sample 35591 ,

The IN operator can be used in the %IF statement only when the MINOPERATOR option is set in the %MACRO statement or as a SAS® system option.

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

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

MINOPERATOR 的文档.

最佳答案

注释说这仅在 SAS 9.2 及更高版本中可用。以前,没有用于 MACRO 处理的 IN 语句。宏是字符串,“IN”是有效字符串。需要该选项来告诉宏处理器 IN 现在是关键字。如果他们只是将其作为关键字,则可能包含“IN”的遗留代码将被破坏。

所以#3。

关于SAS:为什么宏中的 IN 运算符不是默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41897510/

相关文章:

python - 合并 2 个具有多个变量的数据集(不能仅使用相似的变量)

sas - 从另一个 session 引用远程 SAS 工作库

sas - 使用 %PUT 正确格式化动态文件名

sas - SYSERR 自动宏变量

recursion - 在 SAS 中实现递归二分

sas - 如何调用 SAS 中另一个变量下的字符串变量?

sas - 在 SAS 宏中执行循环

SAS 做循环 : use loop variable inside the loop to create lagged variables

arrays - 如何在SAS中创建与另一个数组具有相同维度的数组

arrays - 使用 SAS 检查列是否具有指定的特征