proc sort data=test;
by cust_no time_click;
run;
data test1;
length extra_data_new $1000.;
set test ;
by cust_no time_click;
array mytime hour min second;
do i=1 to dim(mytime);
mytime(i)=input(substr(time_click,9+2*(i-1),2),best12.);
end;
date=input(substr(time_click,1,8),yymmdd8.);
datetime=dhms(date,hour,min,second);
retain extra_data_new;
datetime_new=lag(datetime);
if first.cust_no then
do;
datetime_new=.;
extra_data_new=extra_data;
end;
else if intck("minute",datetime_new,datetime)<=10 then
do;
extra_data_new=catx(",",extra_data_new,extra_data);
delete=_n_-1;
end;
else
extra_data_new=extra_data;
keep extra_data_new data_date cust_no delete;
run;
proc sql noprint;
select delete into :delete separated by "," from test1
where ^missing(delete);
quit;
data final;
set test1;
if _n_ not in(&delete.);
drop delete;
run;
|