目的是rolling求12个月的两次购买以上人的占比,endtime这边要跑12次,太不智能呢,哪位高手能帮忙改改code,用宏表现一下,谢谢
%let Endtime='31jan2009'd;
data sales(KEEP=CUSTOMERID ID);
set sales1;
id=customerid||purchasetime||store;
if &endtime-365<=purchasetime<=&endtime and customerid ne 'NULL';
run;
PROC SORT DATA=sales; BY ID; RUN;
DATA FREQ (KEEP=CUSTOMERID ID);
SET sales;
BY ID;
IF LAST.ID;
RUN;
DATA FREQ ;
SET FREQ;
BY CUSTOMERID;
IF FIRST.CUSTOMERID THEN DO;
F=0;
END;
F+1;
IF LAST.CUSTOMERID THEN OUTPUT;
RUN;
proc sql;
create table aa as select count (distinct(case when f>=2 then customerid else '1' end)),count( customerid),count (distinct(case when f>=2 then customerid else '1' end))/count( customerid) from FREQ;
quit;