You didn't show any code. Just a listing.
First let's convert your original listing into an actual dataset so we have something to code with.
data have;
input name & :$30. id admit :mmddyy. test :mmddyy.;
format admit test yymmdd10.;
cards;
Pete Smith 123 1/2/2020 12/25/2019
Pete Smith 123 3/5/2020 12/25/2019
Sarah Jones 456 2/2/2020 1/25/2020
Sarah Jones 456 4/5/2020 1/25/2020
Mark Adams 789 4/7/2020 3/25/2020
Mark Adams 789 6/1/2020 3/25/2020
;
Since it is already sorted by ID we can skip the sorting and go straight to transposing it.
proc transpose data=have out=want prefix=admit;
by id name test;
run;
Result:
Obs id name test _NAME_ admit1 admit2
1 123 Pete Smith 2019-12-25 admit 2020-01-02 2020-03-05
2 456 Sarah Jones 2020-01-25 admit 2020-02-02 2020-04-05
3 789 Mark Adams 2020-03-25 admit 2020-04-07 2020-06-01
Now if you want to find the difference in DAYS between ADMIT1 and ADMIT2 you can use subtraction. If you want it in some other date interval use INTCK() function.
data differenes;
set want;
days = admit2-admit1;
months = intck('month',admit1,admit2,'cont');
run;
Result
Obs id name test _NAME_ admit1 admit2 days months
1 123 Pete Smith 2019-12-25 admit 2020-01-02 2020-03-05 63 2
2 456 Sarah Jones 2020-01-25 admit 2020-02-02 2020-04-05 63 2
3 789 Mark Adams 2020-03-25 admit 2020-04-07 2020-06-01 55 1
... View more