%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?
"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."
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.
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.