%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.
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.
Duplicate post, please use your other post on the same topic:
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.
%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
Still duplicate, please don't have two posts for the same question.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.