Help with Marco variables name var_&(X-1)

Accepted Solution Solved
Reply
Super Contributor
Posts: 412
Accepted Solution

Help with Marco variables name var_&(X-1)

Hi,

I have a dataset with var1 var2 ...var100.

I want to code the below macro idea:

%macro test(x=);

Data have;

if var_&x = 3 OR var_&(X-1)=3 OR var_&(x-4)=3 then find=1;

run;

%mend;

so if X=10, the code will check var10, var9 and var6 value.

Yes, I can make it %macro test( x=, y=, z=) .

But I wonder if we can do anything similar this idea.

Thank you,

HHC


Accepted Solutions
Solution
‎06-17-2014 11:47 AM
Trusted Advisor
Posts: 1,228

Re: Help with Marco variables

%macro test(x=);

Data have;

var_10=3;var_9=3;var_6=3;

if var_&x = 3 OR var_%eval(&X-1)=3 OR var_%eval(&x-4)=3 then find=1;

run;

%mend;

%test(x=10)

View solution in original post


All Replies
Solution
‎06-17-2014 11:47 AM
Trusted Advisor
Posts: 1,228

Re: Help with Marco variables

%macro test(x=);

Data have;

var_10=3;var_9=3;var_6=3;

if var_&x = 3 OR var_%eval(&X-1)=3 OR var_%eval(&x-4)=3 then find=1;

run;

%mend;

%test(x=10)

Super User
Posts: 19,789

Re: Help with Marco variables

Use an array.

%let x=10;

data have;

array var(100) var1-var100;

if var(&x)=3 or var(&x-1)=3 or var(&x-4)=3 then find=1;

run;

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 217 views
  • 3 likes
  • 3 in conversation