data trade;
input symbol $ time : time12. price;
format time time12.;
cards;
AA 9:00:00 10
AA 9:00:03 10
AA 9:00:06 10
AA 9:00:07 12
AA 9:00:08 10
BB 9:00:00 30
;
run;
proc sort data=trade;
by symbol price time;
run;
data trade;
set trade;
lag_symbol=lag(symbol);
lag_price=lag(price);
retain tmp;
format tmp time8.;
if symbol^=lag_symbol or price^=lag_price then tmp=time;/*“相同SYMBOL和PRICE”不满足时,则不合并*/
else do;
if time-tmp<=5 then delete;/*把相同SYMBOL和PRICE,又在五秒钟之内的项合并*/
else tmp=time;/*把相同SYMBOL和PRICE,但不在五秒钟之内的项保留*/
end;
keep symbol time price;
run;