有誰知道我可以更正以下內容?數字操作數是否必需?
CODE:
%macro variables(list);
data tire.Import2(drop=i count);
set tire.Import;
by Away_Team;
%let n=%sysfunc(countw(&list));
%DO k=1 %TO &n;
%let val = %scan (&list,&k);
array x(*) &val.lag1-&val.lag6;
&val.lag1=lag1(&val);
&val.lag2=lag2(&val)+lag1(&val);
&val.lag3=lag3(&val)+lag2(&val)+lag1(&val);
&val.lag4=lag4(&val)+lag3(&val)+lag2(&val)+lag1(&val);
&val.lag5=lag5(&val)+lag4(&val)+lag3(&val)+lag2(&val)+lag1(&val);
&val.lag6=lag6(&val)+lag5(&val)+lag4(&val)+lag3(&val)+lag2(&val)+lag1(&val);
%if %str(first.Away_Team) %then count=1;
%do i=count %to dim(x);
x(i)=.;
%end;
count + 1;
run;
%end;
%mend;
%variables(FTHG FTHGC);
ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric operand is required. The condition was: %str(first.Away_Team) ERROR: The macro VARIABLES will stop executing.
我嘗試使用%bquote
和%str
但沒有運氣!
我不知道SAS語言,但Google很快說%str是_quoting函數_。這聽起來像是將引號放在參數上,然後它不再是適用於%if的數值。 –
您的宏%循環在最後應該可能是一個數據步驟循環。 – Quentin
也是你的%if%str(第一個)。應該是如果第一。 – Quentin