Hi. I am not sure if this is what you are looking for, but consider the following:
/* Create sample table*/ Data Example; infile datalines dlm=','; Input Cat1:$1. Cat2 :$1. AdmDt :mmddyy10.; format admdt mmddyy10.; datalines; A,1,01/01/2022 A,1,01/02/2022 A,1,01/03/2022 A,1,01/10/2022 A,1,01/11/2022 A,1,01/12/2022 A,2,01/01/2022 A,2,01/02/2022 A,2,01/07/2022 ; run; /*Sort table*/ proc sort data=example; by Cat1 Cat2 AdmDt; /* Use first., last. and lag to check values and assign a value to SubCat*/ Data Categorize; set example; by Cat1 Cat2 AdmDt; Retain SubCat 0; if first.cat2 then SubCat+1; If not first.cat2 and admDt >sum(lag(Admdt)+1) then SubCat+1; run;
... View more