Returns the data type of a SAS data set variable
Category: SAS File I/O
VARTYPE ( data-set-id , var-num )
data-set-id
specifies the data set identifier that the OPEN function returns.
var-num
specifies the number of the variable's position in the SAS data set.
Tip: This number is next to the variable in the list that is produced by the CONTENTS procedure.
Tip: The VARNUM function returns this number.
VARTYPE returns C for a character variable or N for a numeric variable.
This example places the names of all the numeric variables of the SAS data set MYDATA into a macro variable.
%let dsid=%sysfunc(open(mydata,i)); %let varlist=; %do i=1 %to %sysfunc(attrn(&dsid,nvars)); %if (%sysfunc(vartype(&dsid,&i)) = N) %then %let varlist=&varlist %sysfunc(varname (&dsid,&i)); %end; %let rc=%sysfunc(close(&dsid));
This example creates a data set that contains the name and formatted contents of each character variable in the SAS data set MYDATA.
data vars; length name $ 8 content $ 20; drop dsid i num fmt rc; dsid=open("mydata","i"); num=attrn(dsid,"nvars"); do while (fetch(dsid)=0); do i=1 to num; name=varname(dsid,i); fmt=varfmt(dsid,i); if (vartype(dsid,i)='C') then do; content=getvarc(dsid,i); if (fmt ne " ) then content=left(putc(content,fmt)); output; end; end; end; rc=close(dsid); run;
Function:
'VARNUM Function' on page 877