计算多少变量

时间:2013-04-28 13:13:57

标签: sas

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

我想使用do loop

这是我的程序

%PUT _USER_;

OPTIONS 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)

感谢

1 个答案:

答案 0 :(得分:0)

我同意Dirk的看法,这可能不是一个好主意,但它相当微不足道。这有一些很好的理由;主要是使用参数列表,参数列表未知。如果你想看到更全面的用法,请查看SYSPARM(http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a000543608.htm),这通常需要这种操作(并且可能是处理未知数量的参数问题的正确方法,尽管这不是真的任何不同)。

%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)