BookmarkSubscribeRSS Feed
Mike_Davis
Fluorite | Level 6


Hello everyone,

I want to know whether a macro  variable is a pure numeric or it include some characters, how to do this?

For example:the macro  variable &notpure is NOT a pure numeric, it includes some characters('aqw').how to know this?

%let notpure=123aqw4567;

%let pure=12345;

Thanks

Mike

4 REPLIES 4
art297
Opal | Level 21

%let notpure=123aqw4567;

%put %sysfunc(notdigit(&notpure.));

%let pure=12345;

%put %sysfunc(notdigit(&pure.));

Mike_Davis
Fluorite | Level 6

Awesome,

Thanks Art!

Mike

Tom
Super User Tom
Super User

Why not use the SAS supplied macro DATATYP ?

Mike_Davis
Fluorite | Level 6


Thank you Tom!

%macro test;
%let a=123;
%let b=a12;
%put 1:%DATATYP(&a);
%put 2:%DATATYP(&b);
%if %DATATYP(&b)=CHAR %then %put char;
%if %DATATYP(&b)=NUMERIC %then %put #;
%mend test;

%test;

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 4 replies
  • 1799 views
  • 6 likes
  • 3 in conversation