data have;
input recip_id Dose1 (admin_date CVX MC Auth Lot_id dose_num vax_fund admin_state interval) (:$40.);
Datalines;
1 1 10/16/2021 208 PF US acvds 1 k MI .
1 2 11/6/2021 208 PF US bdsa 2 k MI 21
1 3 5/29/2021 207 MO US bde1de 3 k MI 90
2 1 6/7/2021 207 MO US 2ds42 1 h OH .
3 1 7/7/2021 208 PF US 3fs1 1 h WI .
3 2 7/7/2021 208 PF US fews2 2 k WI 28
3 3 8/4/2021 208 PF US gesw21 3 k WI 87
4 1 1/21/2022 208 PF US fewq21 1 h NY .
4 2 12/22/2020 208 PF US gresa21 2 h NY 28
5 1 1/12/2021 212 JS US gewa2 1 k WV .
6 1 4/12/2021 207 MO US fewqa2 1 k IN .
6 2 4/29/2021 207 MO US gewad2 2 k IN 27
;
run;
proc sql noprint;
select distinct catt('have(where=(Dose1=',Dose1,') rename=(
admin_date=admin_date',Dose1,' CVX=CVX',Dose1,' MC=MC',Dose1,
' Auth=Auth',Dose1,' Lot_id=Lot_id',Lot_id,' dose_num=dose_num',Dose1,
' vax_fund=vax_fund',Dose1,' admin_state=admin_state',Dose1,' interval=interval',Dose1,'
))') into :merge separated by ' '
from have;
quit;
data want;
merge &merge.;
by recip_id;
drop Dose1;
run;
... View more