我有一个按电子邮件地址和日期排序的数据集。该数据集包含有关多次使用服务的用户的信息。我想标记一个用户(由电子邮件地址指定)第一次以标志= 1出现,而所有其他人则以标志= 0出现。我试图对首次出现进行排序,然后重新合并到数据集中但这是不成功的(似乎步骤太多了)

proc sort data = DB nodupkey out = db1;
by emailaddress date;
run;

proc sort data = db1;
by emailaddress date;
run;

data db2;
set db1;
obs = 1 ;
run;

data db3;
merge db2 db1;
by emailaddress date;
run;

谢谢!!

最佳答案

您可以为此使用FIRST。

proc sort data=db;
by emailAddress Date;

data db1;
   set db;
   by emailaddress date;
   flag = first.emailAddress;
run;

09-10 13:05
查看更多