DATA Step, Macro, Functions and more

How do I use macro variable to determine number of columns in a data set?

Reply
Learner
Posts: 1

How do I use macro variable to determine number of columns in a data set?

Hi All,

 

I would like to use a macro variable to determine the number of columns in a data set. I've tried looking up the syntax but can't seem to find it. Any help would be appreciated.

Super User
Posts: 10,500

Re: How do I use macro variable to determine number of columns in a data set?

There is no need for a macro. The following Proc SQL code will display the number in results:

proc sql;
   select nvar
   from dictionary.tables
   where libname='SASHELP' and memname='CLASS';
quit;

If you want the result in a data set then preface the select NVAR with : create table yourtablename as

 

 

Or in a data step:

data want;
   set sashelp.vtable (where=(libname='SASHELP' and memname='CLASS'));
   keep nvar;
run;

The SQL version may run faster depending on how many libraries, number of data sets and locations of the libraries.

 

Super User
Posts: 9,681

Re: How do I use macro variable to determine number of columns in a data set?


%let dsid=%sysfunc(open(sashelp.class));
%let nvars=%sysfunc(attrn(&dsid,nvars));
%let dsid=%sysfunc(close(&dsid));

%put &nvars;

Ask a Question
Discussion stats
  • 2 replies
  • 167 views
  • 4 likes
  • 3 in conversation