sure! First step (join):
proc sql;
create table data.temp as
select
a.*,
b.*
from data.have1_trips a full join data.have2_timetable b
on a.stp =b.FromStp
where
a.date=b.date and
a.lineroute=b.lineroute and
a.boardingstop=b.FromStp and
a.alightingstop=b.ToStp;
quit;
run;
data step to determine differences between boarding time and departure times:
proc sort data=data.alightingstop; by crd_num trs_dt time FromStp ToStp Total_Mete; run;
data data.temp;
set data.temp;
BoardingStop=FromStp;
AlightingStop=ToStp;
timediff=abs(boardingtime-deptime);
run;
Final step, the determination of most probable alighting stop using the means procedure:
proc means data=data.temp noprint;
var timediff;
by CardID date lineroute BoardingStop AlightingStop;
output out=data.want min=seconds;
run;
But I suspect that there are more efficient ways to obtain this!
... View more