Hi Reeza: Sure! Some of my code is below: In the code, I am match-merging a base dataset with about 30 datasets (each dataset contains info on different set of clients and their service/program usage; each dataset focuses on a different kind of service/program) in their own data step. So, the list of variables to keep within each data step is different and the date variables each have only one value or missing. It'd certainly be helpful if you let me know how efficient/not this system is. Thank you!! -- PROC SORT data=metricdata; BY last_name first_name; RUN; PROC SORT data=_2013enrich_dup; BY last_name first_name; RUN; DATA _2013enrich_dup_master; MERGE metricdata (in=metric_) _2013enrich_dup (in=_2013enrich_dup_ KEEP=last_name first_name Participated_in_Enrichment_Prog1 Participated_in_Enrichment_Prog2 Participated_in_Enrichment_Prog3 Participated_in_Enrichment_Prog4 Participated_in_Enrichment_Prog5 Participated_in_Enrichment_Progr); BY last_name first_name; in_metric = metric_ ; in__2013enrich_dup = _2013enrich_dup_ ; if Participated_in_Enrichment_Prog1 =1 then date01=input("07/01/2013", mmddyy10.) ; else date01= . ; if Participated_in_Enrichment_Prog2 =1 then date02=input("08/01/2013", mmddyy10.) ; else date02= . ; if Participated_in_Enrichment_Prog3 =1 then date03=input("09/01/2013", mmddyy10.) ; else date03= . ; if Participated_in_Enrichment_Prog4 =1 then date04=input("10/01/2013 ", mmddyy10.) ; else date04= . ; if Participated_in_Enrichment_Prog5 =1 then date05=input("11/01/2013 ", mmddyy10.) ; else date05= . ; if Participated_in_Enrichment_Progr =1 then date06=input("12/01/2013 ", mmddyy10.) ; else date06= . ; if metric_=1 and _2013enrich_dup_=1 then output _2013enrich_dup_master; drop Participated_in_Enrichment_Prog1 Participated_in_Enrichment_Prog2 Participated_in_Enrichment_Prog3 Participated_in_Enrichment_Prog4 Participated_in_Enrichment_Prog5 Participated_in_Enrichment_Progr; RUN; PROC SORT data=metricdata; BY last_name first_name;RUN; PROC SORT data=_2014enrich_dup;BY last_name first_name;RUN; DATA _2014enrich_dup_master; MERGE metricdata (in=metric_) _2014enrich_dup (in=_2014enrich_dup_ KEEP=last_name first_name Jan_Participated_in_Enrichment_P Feb_Participated_in_Enrichment_P Mar_Participated_in_Enrichment_P ); BY last_name first_name; in_metric = metric_ ; in__2014enrich_dup = _2014enrich_dup_ ; if Jan_Participated_in_Enrichment_P = 1 then date07= input("01/01/2014", mmddyy10.) ; else date07=.; if Feb_Participated_in_Enrichment_P = 1 then date08= input("02/01/2014", mmddyy10.) ; else date08=.; if Mar_Participated_in_Enrichment_P = 1 then date09= input("03/01/2014", mmddyy10.) ; else date09=.; if metric_=1 and _2014enrich_dup_=1 then output _2014enrich_dup_master; drop Jan_Participated_in_Enrichment_P Feb_Participated_in_Enrichment_P Mar_Participated_in_Enrichment_P; RUN;
... View more