BookmarkSubscribeRSS Feed
pawandh
Fluorite | Level 6

%let a=2 here a is a macro variable and is character and if i write ths

proc print data=data;

where rating=&a;

run;

then records with rating=2 is coming.How ths character is getting resolved as numeric over here?

2 REPLIES 2
mohamed_zaki
Barite | Level 11

"Macro variables contain only character data. However, the macro facility has features that enable a variable to be evaluated as a number when it contains character data that can be interpreted as a number."

 

 

Introduction to Macro Variables

Astounding
PROC Star

SAS language can interpret 2 as either character or numeric, depending on the context:

 

xrays=2;

robot='R2D2';

 

Macro language is not determining whether "2" is character or numeric.  It is merely substituting "2" into the program, making it:

 

proc print data=data;

where rating=2;

run;

 

SAS language then interprets the program, and decides what each word means.  

Catch up on SAS Innovate 2026

Dive into keynotes, announcements and breakthroughs on demand.

Explore 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
  • 2 replies
  • 1271 views
  • 0 likes
  • 3 in conversation