id date cond
1 2005 ch
1 2006 ca
1 2007 bk
1 2008 bk
2 2005 bk
2 2006 ch
2 2007 bk
同一id下的记录按时间升序排列,如果相同id第一条记录的cond="bk",则不处理 ,否则在"bk"之前的数据记录删除,直到同一id下的第一条记录为"bk",得到如下结果:
id date cond
1 2007 bk
1 2008 bk
2 2005 bk
2 2006 ch
2 2007 bk
需要用sas代码编程,谢谢!
proc sort data=raw_data;
by id date;
run;
data new_data;
set raw_data;
by id date;
if first.id and cond^="bk" then bisbk=0;
if first.id and cond="bk" then bisbk=1;
if not first.id and cond="bk" then bisbk=1;
if bisbk=0 then delete;
run;
我认为这样用retain 和 first也可以达到目的,不过没有运行过