Hi,
I have a list of macro variables m1,m2,m3... etc each of it having values as given below:
value of &m1 is: name=Pramod
value of &m2 is: location=Bangalore
value of &m3 is: date=29nov2011
.
.
.
I want to convert each of these key value pairs into macro variable-value pairs. That is, I want macro variables and thier values as below:
value of &name is: Pramod
value of &location is: Bangalore
value of &date is : 29nov2011
etc..
Please let me know if you need more clarity on understanding the problem statement..
Thanks in advance!
Pramod
Is this what you want?
%let m1 =name=Pramod;
%let m2 =location=Bangalore;
%let m3 = date=29nov2011;
%macro test;
data look;
length mn $ 8 mv $ 12;
%do i=1 %to 3;
mn="%scan(&&m&i,1,'=')";
mv="%scan(&&m&i,2,'=')";
output;
%end;
run;
%mend;
%test
data _null_;
set look;
call symputx(mn,mv);
run;
%put _user_;
21 %put _user_;
GLOBAL LOCATION Bangalore
GLOBAL DATE 29nov2011
GLOBAL M1 name=Pramod
GLOBAL M2 location=Bangalore
GLOBAL M3 date=29nov2011
GLOBAL NAME Pramod
Linlin
%let m1=name=Pramod;
%let m2=location=Bangalore;
%let m3=date=29nov2011;
*simply;
%let &m1;
%put _user_;
*or automagically;
data _null_;
set sashelp.vmacro(where=(SCOPE='GLOBAL' and name eq: 'M'));
put _all_;
call execute(cat('%let ',strip(value),';'));
run;
%put _user_;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.