BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
emikea
Calcite | Level 5

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;

1 ACCEPTED SOLUTION

Accepted Solutions
SASKiwi
PROC Star

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

2 REPLIES 2
SASKiwi
PROC Star

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.;

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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