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!
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.