我正在尝试标记具有相同 ID 和日期但结果不同的观测值。并非所有具有相同 ID 和日期的观测值都会有不同的结果,但很大一部分会这样。我已经为具有相同 ID 和日期的观测值创建了一个标记变量,但在为不同的结果创建标记时遇到了麻烦。
以下是一些示例数据。
data test;
input ID Dt :mmddyy10. result;
format dt mmddyy10.;
datalines;
1 4-27-24 1
1 4-27-24 1
1 4-30-24 2
1 4-30-24 2
2 5-5-24 1
2 5-5-24 2
3 6-6-24 1
3 6-6-24 1
4 7-7-24 1
4 7-7-24 2
4 7-17-24 2
4 7-17-24 2
;
run;
先感谢您!!
您可以使用按组处理和滞后函数来实现这一点。我们将检查它是否是组中的最后一个观察值
id dt
,并确保有多个值id dt
,然后将的前一个值result
与当前值进行比较。如果相同,则返回 0。如果不相同,则返回 1。由于滞后函数的工作方式存在一些特殊怪癖,我们将首先创建滞后,然后在每次到达新组的开头时将其设置为缺失。