%macro demo; %let ccnames=Myocardial infarction*Congestive heart failure*Peripheral vascular disease*Cerebrovascular disease*Dementia*Chronic pulmonary disease*Rheumatic disease*Peptic ulcer disease*Mild liver disease*Diabetes without chronic complication*Diabetes with chronic complication*Hemiplegia or paraplegia*Renal disease*Any malignancy*Moderate or severe liver disease*Metastatic solid tumor*AIDS/HIV; %let cc1 = %str('I21','I22','I252','410','412'); %let cc2 = %str('I099','I110','I130','I132','I255','I420','I425','I426','I427','I428','I429','I43','I50','P290','39891','40201','40211','40291','40401','40403','40411','40413','40491','40493','4254','4255','4256','4257','4258','4259','428'); %let cc3 = %str('I70','I71','I731','I738','I739','I771','I790','I792','K551','K558','K559','Z958','Z959','0930','4373','440','441','4431','4432','4433','4434','4435','4436','4437','4438','4439','4471','5571','5579','V434'); %do i=1 %to 17; %let ccname=%scan(&ccnames., &i., *); proc sql; create table _15_cohort_cc&i. as select distinct enrolid, "&ccname." AS cc&i. from derived._15_diagtable a inner join derived._15_firstproc b on a.enrolid=b.enrolid and a.code in: (&&cc&i.) and b.first-180<=a.svcdate<=b.first order by enrolid; quit; %end; what is this code doing ? i do not understand macros that well, any help is appreciated
... View more