DATA Step, Macro, Functions and more

Macro-Do-Loop: Reference previous step

Accepted Solution Solved
Reply
Contributor
Posts: 35
Accepted Solution

Macro-Do-Loop: Reference previous step

Dear community,

 

I would like to ask for your help, concerning the following issue:

The scenario is, that I am running a macro-%DO-loop.

What I do want to do is, to reference the “previous” step, which is to say, that, if my loop run from 1 to 5 and I am at point 4, I do want to create a macro variable, containing the value 3.

I have tried the following, but sadly, it does not work:

 

%macro doloop;

%DO j=1 %TO 5;

data interim; incr = &j.-1; run;
data _null_; set pft; call symput("s", interim); run;

data no_&j.; test=&j.; run;
data no_&s.; test=&s.; run;

%End;

%mend doloop;

%doloop;

where j is the indicator of the loop and s is the "minus 1" variable.

 

I would be glad, if you could help me with this issue of mine.

 

Yours sincerely,

Sinistrum


Accepted Solutions
Solution
‎09-04-2016 02:40 PM
Super User
Posts: 17,863

Re: Macro-Do-Loop: Reference previous step

 

 

 

Wrap your calculation in %eval().

 

 

%let s = %eval(&j. - 1);

 

 

View solution in original post


All Replies
Solution
‎09-04-2016 02:40 PM
Super User
Posts: 17,863

Re: Macro-Do-Loop: Reference previous step

 

 

 

Wrap your calculation in %eval().

 

 

%let s = %eval(&j. - 1);

 

 

Contributor
Posts: 35

Re: Macro-Do-Loop: Reference previous step

Thank you very much indeed - I do not now, how long I carried around this issue, but, finally, it is resolved.

 

☑ This topic is SOLVED.

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

Discussion stats
  • 2 replies
  • 231 views
  • 1 like
  • 2 in conversation