我問一個老問題。我有代碼,看過以前的問題,但我無法糾正我的錯誤。以下是帶有虛擬數據的代碼。我無法將變量的名稱傳遞給宏。將變量列表讀入sas宏
data x;
inputs x$ y z;
datalines;
a 23 34
b 34 43
a 23 54
b 87 78
a 12 32
b 22 33
;
run;
現在我創建的變量
%let name_list=y z;
然後我寫的宏列表。
%macro mixed;
%let j=1;
%let first=%scan(&name_list.,%eval(&j));
%do %while (&first ne);
proc mixed data=x;
class x;
model &name_list.=;
random x;
ods output covParms=cov1;
run;
%let j=%eval(&j+1);
%let first=%scan(&name_list.,%eval(&j));
%end;
run;
%mend;
%mixed;
一些如何不工作。任何幫助將不勝感激。
您的宏代碼工作(雖然可以改進)。 「不工作」是什麼意思? PROC MIXED正在嘗試生成的MODEL語句是什麼?現在你正在生成'model y z =;'這可能是問題所在。 – Quentin
在宏調用之前添加'options mprint mlogic symbolgen;'至少可以幫助診斷。 – Hugs