我開始學習SAS中的%macro
,現在我試圖用直方圖作爲輸出來實現簡單的引導程序。SAS中的Bootstrap宏
/*Create K data sets(vectors)*/
%macro datasets(K);
%do i=1 %to &K;
data indata&i;
%do j = 1 %to 50;
x=(rand('normal',2,9));
output;
%end;
run;
%end;
%mend datasets;
%datasets(3);
/*Bootstrap and hist*/
%macro boot (data,res);
%do i=1 %to &res;
%let x = (sample(&data,50));
%let m = (mean(&x));
%end;
proc iml;
read &m into A;
create DataM from A;
append from A;
close Data1;
quit;
proc univariate data=Data1;
histogram m;
run;
%mend boot;
%boot(Indata1,100);
它不工作,我不明白爲什麼。你能指出我的錯誤嗎?
你期望在這裏發生什麼:'%let x =(sample(&data,50)); %let m =(平均值(&x));'我希望這不符合你的期望,它只是創建宏變量,並且不會進行任何抽樣或計算 – Reeza
@Reeza我試圖在沒有'% let'並且它不起作用 – Art
你期望在這些步驟中發生了什麼?另外,請參閱本白皮書以獲取有關如何在SAS中引導的參考資料:http://www2.sas.com/proceedings/forum2007/183 -2007.pdf – Reeza