I think no need proc transpose.
Change Kurt's code :
data want (keep=ID visit12 visit24 visit36);
set visits;
array x{*} visit: ;
_visit12 = 0;
_visit24 = 0;
_visit36 = 0;
do i=1 to dim(x);
if intnx('month',start,9) <= x{i}< intnx('month',start,16) then _visit12 + 1;
if intnx('month',start,21) <= x{i} < intnx('month',start,28) then _visit24 + 1;
if intnx('month',start,33) <= x{i} < intnx('month',start,40) then _visit36 + 1;
end;
run;
... View more