我正在寻找SAS 9.3 宏语言中for in循环(如在Python或 R 中)的等价物。DO 循环似乎是解决方案,但并没有完全按照我的意愿工作。我建立了一种在数据步骤中使用DO 循环执行此操作的方法,但它不适用于宏语言。例如,在数据步骤中,此代码正在运行:
DATA _NULL_;
DO i = 1,3,5,9;
PUT i;
END;
RUN;
然后按预期出现日志提示:
1
3
5
9
当我尝试对宏中的%DO循环执行相同操作时,出现错误。
%MACRO test();
%DO i = 1,2,4,9 ;
%PUT i = &i;
%END;
%MEND;
%test();
日志提示这些消息:
ERROR: Expected %TO not found in %DO statement.
ERROR: A dummy macro will be compiled
我是 SAS 和 stackoverflow 的新手,所以我希望我的问题不会太愚蠢。在 Python 和 R 中做到这一点非常简单,那么它必须有一种简单的方法在 SAS 中做到这一点。
感谢您的帮助 - J. Muller