Desktop productivity for business analysts and programmers

Check for character or numeric field

Reply
N/A
Posts: 0

Check for character or numeric field

Hi. I am making SAS go through all the fields in a dataset and would only like it to perform a certain action if the field it is looking at is character (and not numeric). I am aware of the anyalpha function but this applies to observations and not entire fields. Any ideas?
N/A
Posts: 0

Re: Check for character or numeric field

Don't worry, I have found 2 solutions, the first being the simplest:

Data DataOut (Drop = i);
Set DataIn;
array Char(*) _Character_;
do i = 1 to dim(Char);
VarEntry = Char(i);
If substr(VarEntry, 1, 3) = 'Low' Then Char(i) = '-99'||Char(i);
End;
Run;

Or
%global vartype ;
%macro VARTYPE ( SASDSN, SASVAR );
%let dsid = %sysfunc( open ( &SASDSN,i) );
%let varnum = %sysfunc( varnum ( &dsid, &sasvar ) );
%let vartype = %sysfunc( vartype(&dsid, &varnum) );
%let rc = %sysfunc( close ( &dsid ) );
%mend VARTYPE;
*** Sample Call;
***%vartype( cpmsas.cpm10x, ml );
/*** end of sas program - vartype ***/
Ask a Question
Discussion stats
  • 1 reply
  • 103 views
  • 0 likes
  • 1 in conversation