Hi, I made this macro, that filter my data set (named A) by id and put it in a new data set (named B), then I run the proc means procedure in my filtered data set. It works fine (code below). data A;
input x y z id;
datalines;
1 2 3 1
4 5 6 1
7 8 9 2
4 8 7 2
1 4 7 2
4 8 9 3
;
run;
%macro filter(id);
data B_&id;
set A;
where id = &id;
run;
proc means data=B_&id noprint;
var x y z;
output out=new_&id(keep=_STAT_ x y z);
run;
%mend filter;
%filter(2); But I need something more, I need that it runs over a specific list of ids and run proc means iteratively. Like, if I code %filter(1 8 9) it should give as a result these three filtered data sets (B_1 B_8 and B_9) and the three data sets with proc means result (new_1 new_8 and new_9). It will be used for several others procs too, some of then not allow the by option, so it's not a possibility. From previous search, I know that I should use the %do macro statement with %sysfunc, but I'm not sure how. Can anyone share some ideas? Thanks, Alana.
... View more