看板 Statistics 關於我們 聯絡資訊
※ 引述《lsshno1 (朝右邊鋒邁進)》之銘言: : 不好意思又來麻煩各位了, : 我目前想要做這件事情: : data examplea; : set examplea; : a1=y1; : a2=lag(y2); : a3=lag2(y3); : a4=lag3(y4); : a13=lag12(y13); : a14=lag13(y14); : run; : 我參考之前west1996前輩的lagloop 巨集, : 想編寫如下: : %macro alagloop; : data examplea; : set examplea; : a1=y1; : array y(13) y1-y13; : %do i=1 %to 13; : a{&i+1}=lag&i*(y{&i+1}); : %end; : run; : %mend; : %alagloop; : 程式卻無法執行. : 請大家幫我看一下哪裡有錯誤, 謝謝! 因為y後面接的數字跟lag的次數不一樣 這個沒研究過要怎麼表示 只能提供你其他方法 data cc; set aa aa; x=0; run; %macro aa; %do s=1 %to 14; data cc; set cc; a&s=lag&s(y&s); if a&s=. then a&s=0; x=x+a&s; run; %end; %mend; %aa; data cc; set cc nobs=n; t=_n_; if 1<t<=n/2+1; keep x a1-a14; run; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.145.80 ※ 編輯: MmmRrrrX 來自: 140.119.145.80 (04/07 02:23)
tew:%eval 04/07 02:39