BookmarkSubscribeRSS Feed
gamotte
Rhodochrosite | Level 12

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

4 REPLIES 4
gamotte
Rhodochrosite | Level 12

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

%put &&&Y..;

5

I just don't understand the logic behind this.

LinusH
Tourmaline | Level 20

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

&& resolves to &.

&Y resolves to X.

Leaving &X, which resolves to 5.

Data never sleeps
gamotte
Rhodochrosite | Level 12

Ok, that makes more sense now.

Thanks

LinusH
Tourmaline | Level 20

Can be done, how depends on your application.

Simplest:

%let X=5;

%let Y=&X.;

Data never sleeps
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1535 views
  • 3 likes
  • 2 in conversation