hello,
a more general macro solution which takes advantage of dictionary tables:
[pre]
data test;
array skills{10};
do i=1 to 5;
do j=1 to 10;
skills{j}=ranuni(10);
end;
output;
end;
run;
proc sql noprint;
select name into :all_var separated by ' ' from dictionary.columns
where libname=upcase('work') and memname=upcase('test') and name contains 'skills';
quit;
%macro change(new_suf);
%let i=1;
%do %until(%qscan(&all_var,%eval(&i)) eq %nrquote());
proc datasets library=work nolist;
modify test;
rename %qscan(&all_var,%eval(&i))=%sysfunc(cats(&new_suf,&i));
quit;
%let i=%eval(&i+1);
%end;
%mend change;
%change(att)
[/pre]
Marius