I've got dates describing periodes (start end) and a variable describing waiting time (wt). However, the dates are partialle overlapping. This is nearly fixed in the attached program but I would like to have latest observation of wt to be placed in correctly. Anyone?
Hi.
If I got this right, you just need to sort the data correctly and fetch the previous stdate between by groups.
* sort reversing stdate (recent to later);
proc sort data=waits;
by hospid diag descending stdate;
run;
* adjust overlapping between by groups;
data waits2;
set waits;
format stdate enddate date9.;
drop _:;
by hospid diag;
* fetch previous stdate;
_enddate=lag1(stdate);
* skip first by group row, fix overlapping;
if not first.diag then enddate=min(enddate,_enddate-1);
run;
* sort back (later to recent);
proc sort;
by hospid diag stdate;
run
lagN functions will retrieve the previous Nth row value of PDV.
More here: http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000212547.htm
The rest is just pure data step logic.
Hope it helps.
Daniel Santos @ www.cgd.pt
You have similar situation as in next post.See solution - it fits your case:
Hi.
If I got this right, you just need to sort the data correctly and fetch the previous stdate between by groups.
* sort reversing stdate (recent to later);
proc sort data=waits;
by hospid diag descending stdate;
run;
* adjust overlapping between by groups;
data waits2;
set waits;
format stdate enddate date9.;
drop _:;
by hospid diag;
* fetch previous stdate;
_enddate=lag1(stdate);
* skip first by group row, fix overlapping;
if not first.diag then enddate=min(enddate,_enddate-1);
run;
* sort back (later to recent);
proc sort;
by hospid diag stdate;
run
lagN functions will retrieve the previous Nth row value of PDV.
More here: http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000212547.htm
The rest is just pure data step logic.
Hope it helps.
Daniel Santos @ www.cgd.pt
Thanks! worked well.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.