【发布时间】:2017-12-18 12:39:49
【问题描述】:
我有一个卡片历史数据集,如下所示。对于每位客户,他们可能在同一天申请了一张或多张卡。但是,由于各种原因,他们的卡被更换了。发卡日期是发卡的日期。新卡 ID 是替换卡的 ID。比如客户A,他的卡是2017年2月1日第一次发卡,卡号是1234,3天后卡丢了,2017年5月2日又发了一张新卡(1235)。
Customer ID First Issue Date Card Issue Date Card ID New Card ID
A 2/1/2017 2/1/2017 1234 1235
A 2/1/2017 5/2/2017 1235
B 5/2/2017 5/2/2017 1245 1248
B 5/2/2017 5/2/2017 1236 1249
B 5/2/2017 10/3/2017 1248 1250
B 5/2/2017 5/3/2017 1249 1251
B 5/2/2017 10/4/2017 1250
B 5/2/2017 5/4/2017 1251
我想要的是将原始卡和所有替换卡组合在一起。例如,客户 B 在 217 年 5 月 2 日申请了两张卡。卡 ID 1245、1248 和 1250 属于同一组(序列号 1),卡 ID 1236、1249 和 1251 属于同一组(序列号 2)。
Customer ID Open Date Card Issue Date Card ID Seq No
A 2/1/2017 2/1/2017 1234 1
A 2/1/2017 5/2/2017 1235 1
B 5/2/2017 5/2/2017 1245 1
B 5/2/2017 10/3/2017 1248 1
B 5/2/2017 10/4/2017 1250 1
B 5/2/2017 5/2/2017 1236 2
B 5/2/2017 5/3/2017 1249 2
B 5/2/2017 5/4/2017 1251 2
请帮我完成这个数据转换。
这是输入文件的数据步骤
data test;
infile datalines dsd truncover ;
input Customer:$1.
First_Issue_Date: ddmmyy10.
Card_Issue_Date: ddmmyy10.
Card_ID: $4.
New_Card_ID: $4. ;
format First_Issue_Date ddmmyy10. Card_Issue_Date ddmmyy10.;
datalines;
A,02/01/2017,02/01/2017,1234,1235,
A,02/01/2017,05/02/2017,1235,,
B,05/02/2017,05/02/2017,1245,1248,
B,05/02/2017,05/02/2017,1236,1249,
B,05/02/2017,10/03/2017,1248,1250,
B,05/02/2017,05/03/2017,1249,1251,
B,05/02/2017,10/04/2017,1250,,
B,05/02/2017,05/04/2017,1251,,
;
【问题讨论】:
-
如果您无法访问 proc optnet,您也许可以调整我发布的答案 here
标签: sas