check the code

Reply
Regular Contributor
Posts: 190

check the code

%let test1=30;

%macro test(ds=abs,a=10,b=20);

data &ds; a=&a; b=&b;

%put _local_; run;

%mend;

options symbolgen mprint;

 %test(ds=abs,a=10,b=20)

 

 

i did this to display local variable to the log bot test1=30 is not displayed plz retify my mistake.

Contributor SJN
Contributor
Posts: 21

Re: check the code

[ Edited ]

Hi Teland,

 

{Code}

%macro ;

-----------

%put _local_;

%mend;

If you understand the _local_. Its displays/works only the macro variables which are present inside the macro.

 

{Code}

%let a=10;

%macro ;

-----------

%put _Global_; or %put _user_;

%mend;

 

if you want to diaplay the macro variables outside the macro which are present (Global macros variables) you need to use _global_;

 

Hope this helps you if you still dont understand let me know.

 

Super User
Super User
Posts: 7,942

Re: check the code

Super User
Posts: 5,500

Re: check the code

Unfortunately, the change needs to occur in your expectations not in the code itself.  This statement appears outside of the macro definition:

 

%let test1=30;

 

Therefore, &TEST1 is a global macro variable, and won't appear in the list of %LOCAL macro variables.

Regular Contributor
Posts: 190

Re: check the code

Posted in reply to Astounding

%let a=10 b=12 c=15;
%macro test(varlist=a b c test1);
string=(varlist= a b c test1);
%do varlist=&a %to test1;

%put _local_ ;
%end;
%mend test;
options symbolgen mprint;
%test

 

will this work or retify it!

i want to display varlist= a b c test1 to the log with their values

Super User
Super User
Posts: 7,942

Re: check the code

Still duplicate, please don't have two posts for the same question.

Regular Contributor
Posts: 190

Re: check the code

i am sending d code as i am updating it need i ur help to rectify my mistake plz do help

Ask a Question
Discussion stats
  • 6 replies
  • 433 views
  • 0 likes
  • 4 in conversation