我有以下数据集:
DATA survey;
informat order_date date9. ;
INPUT id order_date ;
DATALINES;
1 11SEPT20016
2 12AUG2016
3 14JAN2016
;
RUN;
PROC PRINT data = survey;
format order_date date9.;
RUN;
我现在要做的是根据上次访问对记录进行分类。所以我想做的是:
有关我如何编程的想法?
答案 0 :(得分:1)
你可以建立这样的东西(计算日期之间的天数,将它们除以30并将它们细化)。另外,如果你想使用几个月而不是30天,你可以用'month'替换第一个intck参数并删除ceil和/ 30:
DATA survey;
informat order_date date9. ;
INPUT id order_date ;
DATALINES;
1 11SEP2016
2 12AUG2016
3 14JAN2016
4 09SEP2016
5 10AUG2016
;
RUN;
%let lastvisit=10SEP2016;
data result;
set survey;
days_30=ceil(intck('days', order_date,"&lastvisit"d)/30)-1;
run;
PROC PRINT data = result;
format order_date date9.;
RUN;