我有一个按电子邮件地址和日期排序的数据集。该数据集包含有关多次使用服务的用户的信息。我想标记一个用户(由电子邮件地址指定)第一次以标志= 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;