/* Using sashelp.mon111 which contains prefixed varnames.
All variables are numeric so example multiplies original by 2 .
Select S6 as prefix where mon111 has 10 S6 variables. */
proc contents data=sashelp.mon111; /* explore table */
run;
proc sql; /* Create macro variable series of vars */
select name
into :var1-
from sashelp.vcolumn
where libname='SASHELP' and memname='MON111' and name like 'S6%';
quit;
%put NOTE: &=sqlobs;
%macro x;
data work.test;
set sashelp.mon111;
%do i = 1 %to &sqlobs;
new_&&var&i = &&var&i * 2; /* e.g., create a new variable twice value of original */
%end;
run;
proc print;
var %do i=1 %to &sqlobs;
&&var&i new_&&var&i
%end;;
run;
%mend x;
%x
Partial output, 3 of 10 variable pairs
... View more