BookmarkSubscribeRSS Feed
art297
Opal | Level 21

They differ by the number of ampersands preceding the macro variable.

gfarkas
Calcite | Level 5

Right, but among the 6 in your post, #1 is identical to #4, and #2 is identical to #5, and #3 is identical to #6.

Linlin
Lapis Lazuli | Level 10

Agreed. they are the same to me too.

art297
Opal | Level 21

I have no idea, anymore, of what I had attempted to post back then.  It appears that the discussion was whether periods after a macro variable would cause the variable not to be resolved.  However, my example didn't correctly show that and, in fact, was confusing to say the least.

I just ran the following and they both appear to run correctly whether they do or don't include periods:

%let i=2;

%let name=acct_num;

/* All of the following work */

data x;

   acct_num2=12345;

   put &&name&&i;

run;

data x;

   acct_num2=12345;

   put &&name&&i.;

run;

data x;

   acct_num2=12345;

   put &&name.&&i;

run;

data x;

   acct_num2=12345;

   put &&name.&&i.;

run;

gfarkas
Calcite | Level 5

Am I missing something? Those two sets of 3 data steps look the same to me.

Ksharp
Super User

remove double quote.

put  &&name&i. ;

Peter_C
Rhodochrosite | Level 12

Hi Steve

among these responses, has someone suggested placing an = at the end?

Instead of

put "&&name&i.";

try

data ;

   acct_num=123456789 ;

   put  &&name&i=;

run ;

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 21 replies
  • 4345 views
  • 1 like
  • 10 in conversation