gpt4 book ai didi

sas - SAS 9.3 中的 "For in"循环等效项

转载 作者:行者123 更新时间:2023-12-03 23:35:16 25 4
gpt4 key购买 nike

我正在寻找一段时间,相当于 for 循环 (如 Python 或 R)在 SAS 9.3 宏语言中。 DO loop似乎是解决方案,但并没有完全按照我的意愿工作。
我建立了一种在数据步骤中使用 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.穆勒

最佳答案

我在 SAS 宏语言中遇到的最接近这种模式的是:

%MACRO test();

%let j=1;
%let vals=1 2 4 9;
%do %while(%scan(&vals,&j) ne );
%let i=%scan(&vals, &j);

%put &i;

%let j=%eval(&j+1);
%end;
%MEND;

%test();

(警告:未经测试,因为我不再安装 SAS,我可以对此进行测试。)

关于sas - SAS 9.3 中的 "For in"循环等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com