在sas中创建虚拟变量以指示第一次出现观察

时间:2018-03-28 17:01:48

标签: merge sas

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

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用FIRST。

proc sort data=db; 
by emailAddress Date;

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