首页 > 解决方案 > SAS - 循环数据

问题描述

我有以下格式的数据集:

Date            Item            Customer          Qty

10/05/2017 HDD IGM 1 10/09/2017 Mouse DCD 4 10/11/2017 Mouse IGM 1

假设数据按Date排序,我希望 SAS 循环遍历每条记录并回顾 6 周以查看客户是重复客户还是客户。

我的最终结果如下所示:

Date            Item            Customer          Qty           Repeat Flag

10/05/2017 HDD IGM 1 0 10/09/2017 Mouse DCD 4 0 10/11/2017 Mouse IGM 1 1

我是 SAS 新手,已经在这里停留了一段时间。提前致谢。

编辑 - 我知道这可以使用 ProcSQL 来完成,但我正在尝试仅使用 SAS 语言来实现它。

标签: sas

解决方案


按客户和日期对数据进行排序。

data want ;
  set have ;
  by customer date ;
  lag_date=lag(date);
  if first.customer then lag_date=.;
  new = lag_date < intnx('week',date,-6,'s');
run;

推荐阅读