[英]Reading variable list into sas macro
我问一个老问题。 我已经有了代码,并且已经看过以前的问题,但是仍然无法纠正我的错误。 下面是带有伪数据的代码。 我无法将变量名称传递给宏。
data x;
inputs x$ y z;
datalines;
a 23 34
b 34 43
a 23 54
b 87 78
a 12 32
b 22 33
;
run;
现在我创建一个变量列表
%let name_list=y z;
然后我写宏。
%macro mixed;
%let j=1;
%let first=%scan(&name_list.,%eval(&j));
%do %while (&first ne );
proc mixed data=x;
class x;
model &name_list.=;
random x;
ods output covParms=cov1;
run;
%let j=%eval(&j+1);
%let first=%scan(&name_list.,%eval(&j));
%end;
run;
%mend;
%mixed;
一些如何这是行不通的。 任何帮助将不胜感激。
如果要遍历列表中的名称,则可以使用常规的%DO ... %TO
循环。 无需手动初始化或递增计数器。
%do i=1 %to %sysfunc(countw(&name_list));
%let name=%scan(&name_list,&i);
.... place code here that uses &NAME ....
%end;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.