【发布时间】:2018-10-13 15:42:27
【问题描述】:
我需要从数据集创建(简单?)错误报告。 数据集如下所示:
Contract DrvrNum LicNum
------- ------- ---------
2212621 2 8241323
2212621 2 65256129
6385371 1 973385261
6385371 3 973385261
2366922 1 B931151BA
2366922 2 B931151BA
1007922 1 60916004
1007922 2 60916004
前 2 个观察结果表明我有两个不同的驾照号码用于同一司机,而接下来的三对观察结果表明我有两个或多个司机的驾照号码重复。
我的输出需要如下所示:
Contract DrvrNum LicNum ErrorReason
------- ------- --------- -----------
2212621 2 8241323
2212621 2 65256129 Multiple License Numbers for Same Driver
6385371 1 973385261
6385371 3 973385261 Duplicate License Number
2366922 1 B931151BA
2366922 2 B931151BA Duplicate License Number
1007922 1 60916004
1007922 2 60916004 Duplicate License Number
我尝试在数据步骤中使用 LAG() 函数并结合 first.Contract = 0,但由于其他所有观察结果都是 FALSE,因此得到了滞后值一切都乱了套,让我无法做类似的事情:
if LicNum = lag(LicNum) then ErrorReason = 'Duplicate License Number';
else ErrorReason = 'Multiple License Numbers for Same Driver';
如果有人能提供一些帮助,我将不胜感激。我对此束手无策。
谢谢!
【问题讨论】:
-
尝试在数据步骤中使用 LAG() 函数并结合 first.Contract = 0,您可以显示该代码吗?它们是在单独的语句中还是在单个语句中合并。需要传递到下一次隐式循环迭代的值应存储在
retained 变量中。
标签: sas