Thanks a lot ballardw! In the end I realized I was making life pretty hard for myself and what I wanted was not hard at all. This is how I managed to do it: %macro means(ds, var, year) ; %let name = &var.&year ; proc means data = &ds mean noprint ; var &var ; output out = means mean = &name ; run ; data means ; set means ; keep &name ; label &name = &name ; run ; data final ; merge final means ; run ; %mend means ; %let var = age ; data final ; &var = "&var" ; run ; %means(cno.cno_std_93 , &var , 93) ; %means(cno.cno_std_94 , &var , 94) ; %means(cno.cno_std_95 , &var , 95) ; %means(cno.cno_std_96 , &var , 96) ; %means(cno.cno_std_97 , &var , 97) ; %means(cno.cno_std_98 , &var , 98) ; %means(cno.cno_std_99 , &var , 99) ; %means(cno.cno_std_00 , &var , 00) ; %means(cno.cno_std_01 , &var , 01) ; %means(cno.cno_std_02 , &var , 02) ; %means(cno.cno_std_03 , &var , 03) ; %means(cno.cno_std_04 , &var , 04) ; %means(cno.cno_std_05 , &var , 05) ; %means(cno.cno_std_06 , &var , 06) ; %means(cno.cno_std_07 , &var , 07) ; %means(cno.cno_std_08 , &var , 08) ; %means(cno.cno_std_09 , &var , 09) ; %means(cno.cno_std_10 , &var , 10) ; Thanks for all your help! Sincerely, SE
... View more