DATA Step, Macro, Functions and more

macrovariable containing the name of another macrovariable

Reply
Regular Contributor
Posts: 194

macrovariable containing the name of another macrovariable

Hello,

%let X=5;

%let Y=X;

Can I recover the value 5 from the macrovariable Y ?

I thought &&Y.. would do the trick but it resolves to "X."

Thanks

Regular Contributor
Posts: 194

Re: macrovariable containing the name of another macrovariable

OK, I have found the answer : add a third ampersand

%put &&&Y..;

5

I just don't understand the logic behind this.

Super User
Posts: 5,257

Re: macrovariable containing the name of another macrovariable

The macro compiler removes duplicate &, "pairwise". In your case:

&& resolves to &.

&Y resolves to X.

Leaving &X, which resolves to 5.

Data never sleeps
Regular Contributor
Posts: 194

Re: macrovariable containing the name of another macrovariable

Ok, that makes more sense now.

Thanks

Super User
Posts: 5,257

Re: macrovariable containing the name of another macrovariable

Can be done, how depends on your application.

Simplest:

%let X=5;

%let Y=&X.;

Data never sleeps
Ask a Question
Discussion stats
  • 4 replies
  • 126 views
  • 3 likes
  • 2 in conversation