全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1785 7
2014-08-12
悬赏 20 个论坛币 已解决
比如,我现在有要进行循环的参数   ,要在一个宏程序中调用,想写成类似或者能实现同样功能的,求高手指点

谢谢

最佳答案

pobel 查看完整内容

%macro xunhuan(ds=a,par=,delim=); %let i=1; %do %while(%scan(%quote(&par),&i,%quote(&delim)) ne ); proc sort data=&ds ; by %scan(%quote(&par),&i,%quote(&delim)); run; %let i=%eval(&i+1); %end; %mend; %xunhuan(par=%str(year , qua , month , week , year qua ,id year, id year marks),delim=%str(,))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-8-12 23:29:10
%macro xunhuan(ds=a,par=,delim=);
%let i=1;
%do %while(%scan(%quote(&par),&i,%quote(&delim)) ne );
        proc sort data=&ds ;
          by %scan(%quote(&par),&i,%quote(&delim));
    run;
        %let i=%eval(&i+1);
%end;
%mend;

%xunhuan(par=%str(year ,  qua  , month , week , year qua ,id year, id year marks),delim=%str(,))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-12 23:38:52
第一次来这里多多关照啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-13 07:21:12
也可以是这样:
%let ds=a;
%let byvar=year ,  qua  , month , week , year qua ,id year, id year marks;
data _null_;
    n=count("&byvar",",")+1;
    do i=1 to n;
           code="proc sort data=&ds; "
                    ||"by "||strip(scan("&byvar",i,","))||"; "
                        ||"run;";
                call execute(code);
        end;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-13 07:51:53
参见楼主自己的帖子,举一反三,你就会悟出奥秘。
https://bbs.pinggu.org/thread-3153079-1-1.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-13 09:44:52
pobel 发表于 2014-8-13 07:21
也可以是这样:
%let ds=a;
%let byvar=year ,  qua  , month , week , year qua ,id year, id year mark ...
您好,我在后面想加一个输出的文件   ,但都显示这&i方面的问题  ,请问这样写是哪方面出问题了 code="proc sort data=&ds  out=test&i; "
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群