我的数据是按月结构化的,每个月向每个客户记录添加一个更新。这些是垂直堆叠的。我想搜索每个客户,如果一个标志或指标出现在任何一个月,我想永久记录。从我的例子中,如果有错过付款,我希望ever_missed标志始终为1
|客户Id| |月| |missed_pay| |ever_missed|
1234 Jan 0
1234 Feb 0
1234 Mar 1
1234 Apr 0
5678 Jan 1
5678 Feb 0
5678 Mar 1
5678 Apr 0
我一直在看数组教程但通常日期等都是水平的
一月二月三月
实际上我想做的就是遍历每个客户的每条记录如果missed_pay = 1那么ever_missed = 1
这可以在DATA步骤中使用"DOW循环"来完成,但是SAS PROC SQL使它变得容易,因为有"重新组合"。特性。我不认为数组对这个有帮助。
data have ;
input Cust_ID Month $3. missed_pay ;
cards ;
1234 Jan 0
1234 Feb 0
1234 Mar 1
1234 Apr 0
5678 Jan 1
5678 Feb 0
5678 Mar 1
5678 Apr 0
9999 Jan 0
9999 Feb 0
9999 Mar 0
9999 Apr 0
;
proc sql ;
create table want as
select *,max(missed_pay) as ever_missed
from have
group by Cust_ID
;
quit ;
proc print data=want ;
run ;