Or, if you have a lot of variables, let proc sql do the typing for you. e.g.,: data have; input sub $ cat $ val $ val2; cards; 100 one 2.1 2.1 100 one 4.2 4.2 100 two 3.1 3.1 100 two 3.4 3.4 101 one 7.8 9 101 two 3.2 8 ; proc sql; select distinct case type when 'char' then catx(' ','mean(input(',name,',12.)) as',name) else catx(' ','mean(',name,') as',name) end into :vars separated by ',' from dictionary.columns where libname='WORK' and memname='HAVE' and name not in ('sub','cat') order by varnum ; create table want as select sub,cat,&vars. from have group by sub,cat ; quit;
... View more