有数据集a,变量 stkcd date price,需要把那些出现次数不足n次的股票删除,我一般是这样做的:
proc sort data=a;
by stkcd;
run;
proc summary data=a;
var price;by stkcd;
output out=keep(where=(_freq_>=n)) mean=meanprice;
run;
data b(keep=stkcd date price);
merge a(in=a) keep(in=b);
by stkcd;
if a=b;
run;
这样得到的数据集b就删除了次数不足n次的股票。不知道有没有更加简洁的方法?(有时候需要处理上千万条记录,多一步都感觉很浪费时间)