Sas 计算有多少个变量

Sas 计算有多少个变量,sas,Sas,我想计算日志中有多少变量和输出 我想使用循环 这是我的节目 %PUT _USER_; 选项MPRINT %MACRO varnum(a); data d; array a &a. ; %do i=1 %to %str(dim(a)-1); %put there are &i variables; %end; run; %MEND; %varnum(age income educ) 谢谢我同意德克的观点,这可能不是一个好主意,但它相当微不足道。这有一些很好的理由;主要是使

我想计算日志中有多少变量和输出

我想使用循环

这是我的节目

%PUT _USER_;
选项MPRINT

%MACRO varnum(a);
data d;
array a &a. ;
%do i=1 %to %str(dim(a)-1);
%put there are &i variables;
%end;
run;
%MEND;
%varnum(age  income   educ)

谢谢

我同意德克的观点,这可能不是一个好主意,但它相当微不足道。这有一些很好的理由;主要是使用参数计数未知的参数列表。如果您想了解更全面的用法,请查找SYSPARM(),它通常需要这种操作(这可能是处理未知数量的参数问题的正确方法,尽管这实际上并没有什么不同)


为什么你要这样做,你输入3个变量,所以3个应该出来,对吗?
%MACRO varnum(a);
data d;
array a &a. ;
%do i=1 %to %sysfunc(countc(%sysfunc(compbl(&a)),%str( )))+1; 
*First COMPBL (remove extra spaces) to ensure one space between parameters;
*Then count the number of spaces between parameters, and add one since (1 2 3) has 2 spaces;
%put there are &i variables;
%end;
run;
%MEND;
%varnum(age  income   educ)