原本 希望完成
日期 ID 时间 行动 日期 ID 时间 行动 判断
2008/1/5 1 100101 A 2008/1/5 1 100101 A 有
2008/1/5 1 102201 A 2008/1/5 1 102201 A 有
2008/1/5 1 102456 B 2008/1/5 1 102456 B 有
2008/1/5 1 105533 A 2008/1/5 1 105533 A 有
2008/1/5 2 110055 A 2008/1/5 2 110055 A 无
2008/1/5 2 112051 A 2008/1/5 2 112051 A 无
2008/1/5 2 132505 A 2008/1/5 2 132505 A 无
2008/1/6 3 133555 B 2008/1/6 3 133555 B 无
2008/1/6 1 101200 B → 2008/1/6 1 101200 B 有
2008/1/6 1 115555 A 2008/1/6 1 115555 A 有
2008/1/6 1 125455 B 2008/1/6 1 125455 B 有
2008/1/7 2 113311 A 2008/1/7 2 113311 A 无
2008/1/7 2 115555 A 2008/1/7 2 115555 A 无
2008/1/7 3 134455 B 2008/1/7 3 134455 B 无
2008/1/8 3 105633 A 2008/1/8 3 105633 A 有
2008/1/8 3 112255 A 2008/1/8 3 112255 A 有
2008/1/8 3 120044 B 2008/1/8 3 120044 B 有
2008/1/8 1 125444 A 2008/1/8 1 125444 A 无
2008/1/8 1 133333 A 2008/1/8 1 133333 A 无作者: shiyiming 时间: 2010-8-13 10:26 标题: Re: 条件判断之语法?? [code:22kibatg]data raw;
input date yymmdd8. id time $ action $;
format date yymmdd10.;
datalines;
2008/1/5 1 100101 A
2008/1/5 1 102201 A
2008/1/5 1 102456 B
2008/1/5 1 105533 A
2008/1/5 2 110055 A
2008/1/5 2 112051 A
2008/1/5 2 132505 A
2008/1/6 3 133555 B
2008/1/6 1 101200 B
2008/1/6 1 115555 A
2008/1/6 1 125455 B
;
proc sort data=raw out=temp;
by date id;
run;
data out;
flag='N';
do _n_=1 by 1 until(last.id);
set temp;
by date id;
flag=ifc(action=ifc(_n_=1,action,lag(action)),flag,'Y');
end;
do _n_=1 to _n_;
set temp;
output;
end;
run;[/code:22kibatg]作者: shiyiming 时间: 2010-8-13 20:55 标题: Re: 条件判断之语法?? 成功了,谢谢前辈的指教!