我没有你的源数据集没法测试,你用下面修改之后程序在测试一下
data test_1;
do i=1 to 24;
if i<10 then n=compress("0"||i);
else n=compress(i);
output;
end;
keep n;
run;
data _null_;
set test_1 end=last;
call symput(compress("F_name"||(_n_)),compress(n));
if last then call symput("sum",compress(_N_));
run;
%macro freq();
%do i=1 %to &sum.;
proc sort data=new_&&F_name&i.. out=test_&&F_name&i..;
by enb_id;
run;
data data_&&F_name&i..;
set test_&&F_name&i..;
by enb_id;
if first.enb_id then
do;
flag1=0;
flag2=0;
end;
flag1+var6;
flag2+var7;
if last.enb_id then output;
drop var6 var7;
run;
%end;
%mend;
%freq();
|