gpt4 book ai didi

loops - 在 SAS 中使用 proc sql 通过数组进行简单迭代

转载 作者:行者123 更新时间:2023-12-02 08:38:48 25 4
gpt4 key购买 nike

我只想遍历一个列表并使用列表中的第“i”个元素运行一个过程,并用结果创建一个名为“i”的表。我已经尝试了我能找到的所有资源中的语法,但无法使其正常工作。这是一些说明我的需要的代码/伪代码。非常感谢!

array itemlist[*] (100,101,102);

proc sql;
do i=1 to dim(itemlist);
create table somelibname.[itemlist(i)] as
select * from somelibname.sometable
where item=itemlist(i);
end;
quit;

最佳答案

您需要使用宏来为您“编写”SAS 代码。

这应该可以满足您的需求。它采用以空格分隔的值列表,并按照您的代码指定的方式遍历它们。如果您对此有疑问,请发表评论。

%macro doit(list);
proc sql noprint;
%let n=%sysfunc(countw(&list));
%do i=1 %to &n;
%let val = %scan(&list,&i);
create table somlib._&val as
select * from somlib.somtable
where item=&val;
%end;
quit;
%mend;

%doit(100 101 102);

请注意,数据集不能以数字开头,所以我将这些以“_”开头

关于loops - 在 SAS 中使用 proc sql 通过数组进行简单迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18667379/

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