Macro

Accepted Solution Solved
Reply
Contributor
Posts: 33
Accepted Solution

Macro

 

 

 

Hello,

I have a question about the macros.
Indeed in this simple example, I want to create a multitude of graphics.
Problem is that I have to write each time  %er   (     ,   ).

How to write that once  % er?  But that all graphics are produced.

With% let?  %let p= a e r t y;  ?

 

 

Thanks for your help

 

 

 

 

Data toto;
input a z e r t y;
cards;
1 2 3 4 5 77
6 45 4 8 7 99
4 5 6 8 7 22
1 2 5 4 7 88
;
run;


%macro er (x,y);
proc sgplot data=toto;
scatter x=&x. y=&y./ datalabel;
run;
%mend;
%er (a,z);
%er (a,e);
%er (a,r);
%er (a,t);
%er (a,y);
%er (z,a);
%er (z,e);
%er (z,r);
%er (z,t);
%er (z,y);
%er (e,a);
%er (e,z);
%er (e,r);
%er (e,t);
%er (e,y);

 ...

.........It is too long  :/


Accepted Solutions
Solution
‎04-30-2018 05:55 AM
Super User
Super User
Posts: 9,599

Re: Macro

[ Edited ]

Well first off, you would be better off modelling your toto dataset in such a way that you don't have to do this, i.e. just two columns x and y.

 

But you can do something like:

Data toto;
input a z e r t y;
cards;
1 2 3 4 5 77
6 45 4 8 7 99
4 5 6 8 7 22
1 2 5 4 7 88
;
run;
%macro er (x,y);
%put x=&x. y=&y.;
%mend;

data _null_;
array tmp {*} a z e r t y;
do i=1 to 6;
do j= i+1 to 6;
call execute(cats('%er (x=',vname(tmp{i}),',y=',vname(tmp{j}),');'));
end;
end;
run;

View solution in original post


All Replies
Solution
‎04-30-2018 05:55 AM
Super User
Super User
Posts: 9,599

Re: Macro

[ Edited ]

Well first off, you would be better off modelling your toto dataset in such a way that you don't have to do this, i.e. just two columns x and y.

 

But you can do something like:

Data toto;
input a z e r t y;
cards;
1 2 3 4 5 77
6 45 4 8 7 99
4 5 6 8 7 22
1 2 5 4 7 88
;
run;
%macro er (x,y);
%put x=&x. y=&y.;
%mend;

data _null_;
array tmp {*} a z e r t y;
do i=1 to 6;
do j= i+1 to 6;
call execute(cats('%er (x=',vname(tmp{i}),',y=',vname(tmp{j}),');'));
end;
end;
run;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 117 views
  • 0 likes
  • 2 in conversation