同学,我想问你对如下的思路的看法,会不会有疏漏?
第一步:先去窗口数据位0,1,2的股票数据
proc sql noprint;
create table work.B1 as
select *,
count(name) as cnt
from work.a
group by name
having cnt>=5
order by Stkcd,F18;
quit;
data work.B2;
set work.B1;
by name sum;
if sum=0 then do;
i = 0;
retain i;
end;if sum>0 then do;
i=i+1;
retain i;
end;
if i>=3 then delete;
if sum<0 then delete;
run;
第二部去窗口数据位0,-1,-2的股票数据
proc sql noprint;
create table work.B3 as
select *,
count(name) as cnt
from work.a
group by name
having cnt>=5
order by name,sum;
quit;
proc sort data=work.B3;
by name descending sum;
run;
data work.B4;
set work.B3;
if sum=0 then do;
i = 0;
retain i;
end;if sum<0 then do;
i = i-1;
retain i;
end;
if i<=-3 then delete;
if sum>0 then delete;
run;
最后再把B2和B4文件合并到一起就是窗口-2,-1,0,1,2的数据,这样是不是可以得到我要的结果?但是我不知道最后合并B2和B4时该怎么弄,两个文件应该不是用join语句,该用什么呢?


雷达卡
京公网安备 11010802022788号







