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 ;

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

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
  • 2953 views
  • 1 like
  • 10 in conversation