/*====================================================================*/ /* PROGRAM : NIS_Trends_Supplemental_Merge_Macro.sas */ /* TASK : Import NIS Trends Supplemental Files and merge to */ /* previously created NIS data set. */ /* DATE : 09/11/2006 */ /* PURPOSE : Create new merged data set with additional NIS Trends */ /* Supplemental variables for each previously created NIS */ /* data set created by year. */ /*====================================================================*/ /*====================================================================*/ /* INPUTS : */ /* yyyy_ - NIS project year */ /* inpath_ - Folder path location of supplemental file. */ /* outpath_ - Folder path location of resulting merge file */ /* will reside. */ /* OUTPUTS : */ /* SASDATA - Merged data set with NIS Trends Supplemental */ /* data. */ /*====================================================================*/ %MACRO NIS(yyyy_,inpath_,inname_,outpath_,outname_); TITLE "Merging NIS Trends Supplemental &yyyy_. file to original NIS data set"; LIBNAME LIBIN "&INPATH_."; LIBNAME LIBOUT "&OUTPATH_."; * List contents of NIS Trends Supplemental file ; PROC CONTENTS DATA=LIBIN.NIS_Trends_Supplemental_&yyyy_.; TITLE2 "Contents of SAS data set NIS_Trends_Supplemental_&yyyy_."; RUN; * Sort the supplemental data set; PROC SORT DATA=LIBIN.NIS_Trends_Supplemental_&yyyy_. out=NIS_Trends_Supplemental_&yyyy_.; %IF &yyyy_. LE 1997 %THEN %DO; BY SEQ; %END; %ELSE %IF &yyyy_. GE 1998 %THEN %DO; BY KEY; %END; RUN; * Sort user original core data set and rename overlapping variables; PROC SORT DATA=LIBIN.&inname_. OUT=&inname_.(RENAME=( DX1-DX15 = OLD_DX1-OLD_DX15 %IF &yyyy_. GE 1998 %THEN %DO; DXCCS1-DXCCS15 = OLD_DXCCS1-OLD_DXCCS15 %END; NDX = OLD_NDX %IF &yyyy_. LE 1997 %THEN %DO; PR1-PR15 = OLD_PR1-OLD_PR15 %END; )); %IF &yyyy_. LE 1997 %THEN %DO; BY SEQ; %END; %ELSE %IF &yyyy_. GE 1998 %THEN %DO; BY KEY; %END; RUN; * Merge original core data set with NIS Trends Supplemental data set; DATA LIBOUT.&outname_.; merge &inname_.(in=ina) NIS_Trends_Supplemental_&yyyy_.(in=inb); %IF &yyyy_. LE 1997 %THEN %DO; BY SEQ; %END; %ELSE %IF &yyyy_. GE 1998 %THEN %DO; BY KEY; %END; IF ina; RUN; * List contents of newly created merge file; PROC CONTENTS DATA=LIBOUT.&outname_.; title2 "Contents of &year_. NIS Trends Supplemental SAS data set"; RUN; %MEND; * NIS;