I have data with immunization for individuals. I am needing to create a new line for each individual by each new date that appears, but at the same time have a list of the immunizations for that occured on each date listed.
I have been trying to make this work for some time, but it has been a bit of a disaster and I cannot seem to figure this out. Any help is appreciated.
I want my data to go from looking like this:
ID Date Vaccine
1b 06/06/08 vac123
1b 06/06/08 vac345
1b 06/06/08 vac678
1b 06/06/08 vac910
1b 07/09/10 vac123
1b 07/09/10 vac345
1b 08/08/11 vac345
1b 08/08/11 vac678
1b 08/08/11 vac910
to look like this:
ID Date vac123 vac345 vac678 vac910
1b 06/06/08 1 1 1 1
1b 07/09/10 1 1
1b 08/08/11 1 1 1
Add a 1 in to the dataset for each row and then use proc transpose.
data want1;
set have;
value=1;
run;
proc transpose data=want1 out=want2;
by id date;
var value;
id vaccine;
run;
Add a 1 in to the dataset for each row and then use proc transpose.
data want1;
set have;
value=1;
run;
proc transpose data=want1 out=want2;
by id date;
var value;
id vaccine;
run;
This worked perfectly. Thank you!
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.