sas - 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 语言来实现它。
解决方案
按客户和日期对数据进行排序。
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;