Hi all-
I have the following dataset:
patient ID quarter CHF (and so on...there are ~23 more column variables then- all binary 0/1, with 1=yes the person has the condition)
3 14 0
3 16 0
3 20 1
3 23 0
...and so on
I want each patient to show 36 quarters (so 1-36) regardless of if they have the condition or not. Right now, the quarters that are showing up are only the ones that people have a "yes" for the condition in.
Does anytone know how I would add in the quarters that are missing. It is different w/ each patient.
Thanks!
Something like:
data temp;
set have;
by PatientId notsorted; /* if data is sorted by PatientId don't need the notsorted but assumes all the records for PatientId are together*/
if first.PatientId then do quarter = 1 to 36;
output;
end;
run;
proc sql;
create table want as
select a.*, b.*
from temp as a left join have as b on
a.PatientId = b.PatientId;
quit;
You'll get a warning about PatientId and quarter being in both tables but b.* is shorter than listing all the variables in Have except PatientId and quarter.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.