A data step solution would look like:
data have;
input ID GROUP $ DATE :mmddyy10.;
format date mmddyy10.;
datalines;
1 AAA 1/1/23
2 AAA 1/1/23
3 AAA 1/10/23
4 BBB 1/1/23
5 BBB 1/2/23
5 BBB 1/3/23
;
data want (keep=id average);
set have ;
by group;
date_range+dif(date);
if first.group then call missing(date_range,n_ids);
n_ids+1;
if last.group;
average=n_ids/(date_range+1);
run;
... View more