2013-04-28 94 views
0

來計算投入多少變量,並進行日誌計算我需要多少變量

我想用做循環

這是我的計劃

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

謝謝

+0

你爲什麼要做這個,你輸入3個變量所以3應該出來了吧? – 2013-04-29 12:40:52

回答

0

我同意德克這可能不是一個好主意,但它是相當微不足道的。這有一些很好的理由。主要是使用參數數量未知的參數列表。如果你想看到更全面的用法,查找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)