|
事实上楼上的程序更严谨,谢谢了,请看以下程序就明白。
假如某对象已经发病,但是继续是否,随访的又没有再发病,3楼程序会出错,导致多选,楼上不会。
data original;
input ID follow sb sbday;
informat sbday yymmdd.;
format sbday yymmdd10.;
cards;
1001 1 1 2010-3-1
1002 1 1 2010-3-1
1002 2 1 2010-6-1
1003 1 1 2010-3-1
1003 2 1 2010-6-1
1003 3 2 2010-9-1
1003 4 1 2010-11-1
1004 1 1 2010-3-1
1004 2 2 2010-6-1
1004 3 2 2010-9-1
1004 4 2 2010-12-1
;
run;
proc sort;by id sb;run;
data final1;
set original;
by id sb;
if first.sb and sb=2 then output;
else if last.id and sb ne 2 then output;
run;
proc print data=final1; run;
|