Tips:Check if a variable exists in a dataset

From sasCommunity
Jump to: navigation, search

Have you ever needed to know if a given variable is in a SAS data set? This macro returns 1 if a variable exists in a data set, and 0 if not.

%macro VarExist(ds, var);
    %local rc dsid result;
    %let dsid = %sysfunc(open(&ds));
    %if %sysfunc(varnum(&dsid, &var)) > 0 %then %do;
        %let result = 1;
        %put NOTE: Var &var exists in &ds;
    %else %do;
        %let result = 0;
        %put NOTE: Var &var not exists in &ds;
    %let rc = %sysfunc(close(&dsid));
%mend VarExist;
/* Usage */
%put %VarExist(sashelp.class, name);
%put %VarExist(sashelp.class, aaa);

Submitted by Adrien VALLEE. Contact me at my Discussion Page.