全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2259 2
2018-11-27
例子:
BRAND        Week
A1        100
B3        7
C1        48
AB        34
BD        17
A6        46
A7        79
A8        65
A9        5
A10        72

我想根据week里面的值进行循环,比如处理第一行的时候,循环100次,第二行循环7次,以此类推。
我自己有一个办法如下:
%macro looppp;
        data test1;
        set test;
        %do loop1 = 1 %to 100;
                if week = &loop1. then do;
                        %do loop2 = 1 %to &loop1.;
                        ……
                        %end;
                end;
        %end;
        run;
%mend;

%looppp;

但是我在if里面用lag函数的时候,会取出空值。请问各位大神有没有什么高效的办法呢,比如可以不可以 %do i=1 %to week 这种
二维码

扫码加我 拉你入群

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

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

全部回复
2018-11-28 00:17:21
在宏外直接循环生成数据,然后进宏里判断处理就行。
data test2;
        set test;
        do i = 1 to week;
        output;
        end;
run;

想在宏里循环的话,可以单独设个变量,tmp=lag(week),然后在if里,判断tmp。
二维码

扫码加我 拉你入群

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

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

2018-12-4 18:28:26
已经有人回复了
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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