Hi, I need to validate if the value of a macro variable is numeric(float or Integer). Please suggest a way to do this.
%let x=12.34; %let f=%datatyp(&x); %put &x &f;
Try and convert it to a numeric and check if it's not missing
You can use INPUT.
If input("¯ovariable", ?? Best12.) ne . Then put 'Numeric';
Why use macro variables - which are only text - for numeric data in the first place? Remember Macro Language is only a text generation system, it does nothing on its own, that is what Base SAS is for. There is never a *need* to use macro.
That being said, if your developing a library tool with paramters, and you need to check it, then maybe something like:
...
data _null_;
call symput('TEST',ifc(lengthn(compress("&THEVAR."," .","d")) > 0,"Y","N"));
run;
%if "&test."="Y" %then...
%put Failed;
...
Just to note, in the data _null_, you would do all your parameter checks, and then just output one result.
@RW9Negative sign?
%let x=12.34; %let f=%datatyp(&x); %put &x &f;
@Ksharp learned my new thing for the day 🙂
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.