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_;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.