macros

Reply
Contributor
Posts: 62

macros

%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?

Super Contributor
Posts: 490

Re: macros

"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

Super User
Posts: 5,504

Re: macros

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.  

Ask a Question
Discussion stats
  • 2 replies
  • 241 views
  • 0 likes
  • 3 in conversation