根据日期对记录进行分类

时间:2016-09-02 08:53:50

标签: sas

我有以下数据集:

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; 

我现在要做的是根据上次访问对记录进行分类。所以我想做的是:

  • 设定日期(fe,10SEPT 2016)
  • 对具有lastvisit>的所有记录进行分类30天为1,对所有具有lastvisit的记录进行分类> 60天作为2等...

有关我如何编程的想法?

1 个答案:

答案 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;