SAS中文论坛
标题:
关于%do循环的一个问题
[打印本页]
作者:
Qiong
时间:
2009-9-10 17:25
标题:
关于%do循环的一个问题
对于下面
data _null_;
do i='she','he';
put i;
end;
run;
想试着做到macro里面,但下面的code会报错~~~
%macro a();
%do i='she','he';
%put &i;
%end;
%mend a();
%a;
作者:
shiyiming
时间:
2009-9-10 20:42
标题:
Re: 关于%do循环的一个问题
do语句可以这么用,但%do语句好像不支持这种用法
%DO macro-variable=start %TO stop <%BY increment>;
text and macro language statements
%END;
[code:adg6kjy7]%macro a; /* 如果没有参数,可以不写() */
%let i=she; /* 宏变量总是存储为character,不需要"" */
%put &i;
%mend a; /* 写宏的名字就可以了(也可以不写),不需要写() */
%a /* 调用宏不需要写; */[/code:adg6kjy7]
作者:
shiyiming
时间:
2009-9-14 00:08
标题:
Re: 关于%do循环的一个问题
[code:3b7wso0a]%let av=she he;
%macro abcd;
%do i=1 %to 2;
%let x=%scan(&av,&i);
%put &x;
%end;
%mend abcd;
%abcd[/code:3b7wso0a]
作者:
shiyiming
时间:
2009-9-14 01:44
标题:
Re: 关于%do循环的一个问题
[code:3pibleyi]%macro abcd(av);
%let a=1;
%do i=1 %to %length(&av) ;
%if %qsubstr(&av,&i,1)=%str(*) %then %let a=%eval(&a+1);
%if &i=%length(&av) %then
%do;
%do j=1 %to &a;
%let x=%scan(&av,&j);
%put &x;
%end;
%end;
%end;
%mend abcd;
%abcd(she*he*ban*aj*aoh)[/code:3pibleyi]
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2