Alternatively, without changing data structure, it is possible to calculate time difference (eg. how many days) using proc sql summary functions. Eg:
data have;
infile cards dlm=',' truncover;
length PatientName $20;
input PatientName $ PatientID $ Admissiondate:mmddyy10. Testdate: mmddyy10.;
format Admissiondate Testdate date11.;
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
;
proc sql;
create table want as
select*, min(Admissiondate) as FirstAdmissionDate, max(Admissiondate) as LastAdmissionDate
from have
group by 1, 2, 4
order by 2,3;
quit;
Days= LastAdmissionDate - FirstAdmissionDate;
... View more