DATA Step, Macro, Functions and more

Using Call Symput to Change a Macro Variable's Value

Accepted Solution Solved
Reply
Contributor
Posts: 22
Accepted Solution

Using Call Symput to Change a Macro Variable's Value

Hello- I'm clearly missing something simple here. Any idea why the following code will not change the value of the macro variable?

%SYMDEL MACRO1;

DATA _NULL_;

  %GLOBAL MACRO1;

  %LET MACRO1 = 0;

  %PUT MACRO1 IS NOW &MACRO1.;

  CALL SYMPUTX('MACRO1',1, 'G');

  %PUT MACRO1 IS NOW &MACRO1.;

RUN;


Accepted Solutions
Solution
‎10-14-2014 02:33 PM
Super User
Posts: 3,260

Re: Using Call Symput to Change a Macro Variable's Value

In your example there is no need to use a DATA step or call symputx. The main use of call symputx is to write a DATA step variable to a macro variable.

%GLOBAL MACRO1;

  %LET MACRO1 = 0;

  %PUT MACRO1 IS NOW &MACRO1.;

%LET MACRO1 = 1;

%PUT MACRO1 IS NOW &MACRO1.;

If you want to use call symputx then the value of macro1 will only change after the DATA step boundary as it is an executable DATA step statement.

DATA _NULL_;

  %GLOBAL MACRO1;

  %LET MACRO1 = 0;

  %PUT MACRO1 IS NOW &MACRO1.;

  CALL SYMPUTX('MACRO1',1, 'G');

RUN;

%PUT MACRO1 IS NOW &MACRO1.;

View solution in original post


All Replies
Solution
‎10-14-2014 02:33 PM
Super User
Posts: 3,260

Re: Using Call Symput to Change a Macro Variable's Value

In your example there is no need to use a DATA step or call symputx. The main use of call symputx is to write a DATA step variable to a macro variable.

%GLOBAL MACRO1;

  %LET MACRO1 = 0;

  %PUT MACRO1 IS NOW &MACRO1.;

%LET MACRO1 = 1;

%PUT MACRO1 IS NOW &MACRO1.;

If you want to use call symputx then the value of macro1 will only change after the DATA step boundary as it is an executable DATA step statement.

DATA _NULL_;

  %GLOBAL MACRO1;

  %LET MACRO1 = 0;

  %PUT MACRO1 IS NOW &MACRO1.;

  CALL SYMPUTX('MACRO1',1, 'G');

RUN;

%PUT MACRO1 IS NOW &MACRO1.;

Contributor
Posts: 22

Re: Using Call Symput to Change a Macro Variable's Value

Thank you!

🔒 This topic is solved and locked.

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

Discussion stats
  • 2 replies
  • 191 views
  • 0 likes
  • 2 in conversation