Calcite | Level 5

## Question on converting a list key-value pairs to macro variable-value pairs

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

Pramod

2 REPLIES 2
Lapis Lazuli | Level 10

## Re: Question on converting a list key-value pairs to macro variable-value pairs

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

## Re: Question on converting a list key-value pairs to macro variable-value pairs

%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_;

Discussion stats
• 2 replies
• 1664 views
• 0 likes
• 3 in conversation